程序员为什么热爱 Linux 打包

程序员可以通过 Flatpak 轻松且一致地分发他们的软件,让他们专注于他们的热情:编程。
72 位读者喜欢这篇文章。

在 2021 年,人们喜欢 Linux 的理由比以往任何时候都多。在这个系列中,我将分享 21 个使用 Linux 的不同理由。今天,我将讨论为什么 Linux 打包对程序员来说是理想的。

程序员热爱编程。这可能看起来是句废话,但重要的是要理解,开发软件不仅仅是编写代码。它包括编译、文档、源代码管理、安装脚本、配置默认值、支持文件、交付格式等等。从空白屏幕到可交付的软件安装程序,需要的不仅仅是编程,但大多数程序员宁愿编程也不愿打包。

什么是打包?

当食物被送到商店出售时,它会被打包。当直接从农民或环保的散装或箱装商店购买时,包装就是您带来的任何容器。当从杂货店购买时,包装可能是纸板箱、塑料袋、锡罐等等。

当软件向广大计算机用户提供时,也必须进行打包。像食物一样,软件有几种打包方式。开源软件可以不打包,因为用户可以访问原始代码,自行编译和打包。然而,软件包有其优势,因此应用程序通常以特定于用户平台的某种格式交付。问题就出在这里,因为软件打包格式不止一种。

对于用户而言,软件包使安装软件变得容易,因为所有工作都由系统的安装程序完成。软件从其软件包中提取出来,并分发到操作系统内的适当位置。出错的机会很小。

然而,对于软件开发人员来说,打包意味着您必须学习如何创建软件包——而且不仅仅是一个软件包,而是为每个您希望软件可安装的操作系统创建一个独特的软件包。更复杂的是,每个操作系统都有多种打包格式和选项,有时甚至对于正在使用的编程语言也是如此。

Linux 上的打包

传统上,Linux 的打包选项似乎非常繁多。源自 Fedora 的 Linux 发行版(如 Red Hat 和 CentOS)默认使用 .rpm 软件包。Debian 和 Ubuntu(以及类似的发行版)默认使用 .deb 软件包。其他发行版可能使用其中一种或另一种,或者两者都不使用,而是选择自定义格式。当被问及时,许多 Linux 用户表示,理想情况下,程序员根本不会为 Linux 打包他们的软件,而是依赖于每个发行版的软件包维护者来创建软件包。安装到任何 Linux 系统上的所有软件都应该来自该发行版的官方仓库。然而,如何让您的软件被一个发行版(更不用说所有发行版)可靠地打包并包含在内,仍然不清楚。

Linux 的 Flatpak

Flatpak 打包系统被引入,旨在统一和去中心化 Linux,使其成为开发人员的交付目标。借助 Flatpak,开发人员或任何人(Linux 社区的成员、不同的开发人员、Flatpak 团队成员或任何其他人)都可以自由地打包软件。然后,他们可以将软件包提交到 Flathub,或者选择自托管软件包并将其提供给基本上任何 Linux 发行版。Flatpak 系统可用于所有 Linux 发行版,因此针对一个发行版就相当于针对所有发行版。

Flatpak 技术的工作原理

Flatpak 普遍吸引力的秘诀在于一个标准基础。Flatpak 系统允许开发人员引用一套通用的软件开发工具包 (SDK) 模块。这些模块由 Flatpak 系统的维护者打包和管理。每当您安装 Flatpak 时,都会根据需要拉取 SDK,从而确保与您的系统兼容。任何给定的 SDK 只需要一次,因为它包含的库可以在任何调用它的 Flatpak 之间共享。

如果开发人员需要 SDK 中尚未包含的库,则开发人员可以在 Flatpak 中添加该库。

结果不言自明。用户可以从一个中央仓库(称为 Flathub)在任何 Linux 发行版上安装数百个软件包。

开发人员如何使用 Flatpak

Flatpak 被设计为可重现的,因此构建过程可以轻松集成到 CI/CD 工作流程中。Flatpak 在 YAML 或 JSON 清单文件中定义。您可以按照我的入门文章创建您的第一个 Flatpak,您可以在 docs.flatpak.org 阅读完整文档。

Linux 让一切变得简单

在 Linux 上创建软件很容易,而为 Linux 打包软件也很简单且可自动化。如果您是一名程序员,Linux 让您可以通过针对一个系统并将其集成到您的构建过程中来轻松忘记打包。

接下来阅读

如何构建 Flatpak

一种通用的打包格式,具有去中心化的分发方式。此外,还具有可移植性和沙箱化功能。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.