2023 年 3 个最佳 Linux 通用包管理器
Linux 系统上的包管理或软件安装可能非常令人困惑,尤其是对于新手(Linux 新用户)来说,因为不同的 Linux 发行版使用不同的传统包管理系统。在大多数情况下,最令人困惑的部分是包依赖性解析/管理。
例如,基于 Debian 的发行版(例如 Ubuntu 和 Linux Mint)使用 .deb
软件包,这些软件包通过 dpkg 软件包管理系统进行管理。
另一方面,基于 RHEL 的发行版,例如 CentOS Stream、Rocky Linux 和 AlmaLinux 使用 .rpm
软件包,使用 rpm 软件包管理系统进行管理。
过去几年,随着通用或跨发行版包管理工具的兴起,Linux生态系统中的包管理和分发从未像现在这样。
这些工具允许开发人员通过单个构建将其软件或应用程序打包到多个 Linux 发行版,从而使用户可以轻松地在多个受支持的发行版上安装相同的软件包。
在本文中,我们将回顾 Linux 上排名前 3 的开源通用或跨发行版包管理系统。
1. Snap – 通用包格式
Snap 是一种流行的开源应用程序/包格式和包管理系统,由 Ubuntu Linux 的制造商 Canonical 开发。多个Linux发行版现在支持snap,包括Ubuntu、Debian、Fedora、Arch Linux、Manjaro和CentOS/RHEL。
轻松安装和更新
snap 应用程序是一种跨发行版应用程序,与其所有依赖项(无依赖项)捆绑在一起,以便在任何支持 snap 的 Linux 发行版上轻松安装并自动更新(应用程序始终是最新的)。快照可以在桌面、服务器、云或 IoT(物联网)中运行。
要创建或捕捉应用程序,您可以使用Snapcraft、一个框架和一个用于构建捕捉的强大命令行工具。要在 Linux 中安装和使用 snap,您需要安装 snapd(或 snappy 守护进程),这是一种后台服务,使 Linux 系统能够使用 .snap
文件。 snap 的实际安装是使用 snap 命令行工具完成的。
安全与隔离
由于它们在限制(不同且可配置的限制级别)下运行,因此默认情况下快照是安全的。重要的是,需要访问其限制之外的系统资源的快照会使用快照创建者根据快照的要求精心选择的“接口”。这使您能够运行应用程序,而不会影响基本操作系统的稳定性和灵活性。
此外,snap 包管理系统使用称为通道的概念(由轨道、风险级别和分支组成并按轨道、风险级别和分支细分)来确定安装哪个版本的 snap 并跟踪更新。 Snap 还会自动更新,您可以手动管理该过程。
要查找并安装快照,请在快照商店(开发人员可以共享快照的地方)中搜索它,或使用我们的指南阅读有关它的更多信息:
2. Flatpak – 跨发行版兼容性
Flatpak 是一个著名的开源框架,用于在 Linux 发行版上分发桌面应用程序。 Flatpak 由独立社区开发,允许在几乎任何 Linux 发行版上安装和运行单个应用程序版本。
它总共支持25个发行版,包括Fedora、Ubuntu、RHEL、CentOS、OpenSUSE 和 Arch Linux,并且还可以在 Raspberry Pi 上运行。
Flatpak 的运行时提供了应用程序可以利用的公共库平台。但是,它也使您可以非常轻松地完全控制依赖项,您可以将库捆绑为应用程序的一部分。
Flatpak 附带易于使用的构建工具,并为开发人员构建和测试其应用程序提供一致的环境(跨设备相同且与用户已有的环境类似)。
沙箱增强安全性
Flatpak 通过将每个应用程序放入其沙箱中来确保安全,这样应用程序就不会干扰主系统或其他应用程序。当您处理不确定来源的应用程序时,它非常方便。
用户和开发人员友好
flatpak 的一个有用的方面是向前兼容性,即相同的 flatpak 可以在同一发行版的不同版本上运行,包括开发人员尚未发布的版本。它还努力并继续与新版本的 Linux 发行版兼容。
如果您是开发人员,您可以通过 Flathub 向 Linux 用户提供您的应用程序,Flathub 是一项用于在所有发行版上分发应用程序的集中服务。
3. AppImage:便携式替代品
AppImage 也是一种开源包格式,允许开发人员打包一次应用程序,该应用程序可以在所有主要 Linux 桌面发行版上运行。与以前的包格式不同,使用 AppImage 不需要安装包。只需下载您想要使用的应用程序,使其可执行,然后运行它 - 就这么简单。它支持大多数 32 位和 64 位 Linux 桌面。
无需安装
使用AppImage,无需安装任何东西。您可以将这些包放在 USB 驱动器上、共享它们并运行应用程序,而无需更改系统。这对于便携式 Linux 和实时系统来说非常有用。
广泛的兼容性
AppImage 具有许多优点。对于开发人员来说,无论用户运行的是哪种 Linux 发行版和版本,它都使他们能够接触到尽可能多的用户。对于用户来说,他们不需要担心应用程序依赖关系,因为每个 AppImage 都与其所有依赖项捆绑在一起(一个应用程序=一个文件)。使用 AppImage 尝试新版本的应用程序也很容易。
对于支持大量桌面系统并通常阻止用户安装可能破坏系统的应用程序的系统管理员来说,他们无需再担心。使用AppImage,系统保持完整,因为用户无需安装应用程序即可运行它们。
比较三者:Snap、Flatpak 和 AppImage
以下是三种通用包管理器的比较:
Feature |
Snap |
Flatpak |
AppImage |
Package format |
Self-contained, compressed file |
Self-contained, compressed file |
Single executable file |
Sandboxing |
Yes (by default) |
No (by default) |
No |
Automatic updates |
Yes |
Optional |
No |
Installation |
Requires snapd daemon |
Requires Flatpak runtime |
Does not require installation |
Root privileges |
Requires root privileges to install |
Does not require root privileges to install |
Does not require root privileges to run |
我应该选择哪个包管理器?
如果您正在寻找一个安全且易于使用且具有自动更新功能的包管理器,那么 Snap 是一个不错的选择。如果您正在寻找一个更灵活的包管理器,可用于打包任何类型的应用程序,那么 Flatpak 是一个不错的选择。如果您正在寻找不需要安装或 root 权限的包管理器,那么 AppImage 是一个不错的选择。
还需要注意的是,所有三个包管理器仍在开发中,因此可能存在一些错误或缺少功能。然而,它们都得到积极维护并定期更新。
结论
通用或交叉分发包格式是在 Linux 生态系统中构建和分发软件的下一代技术。然而,传统的包管理系统仍然占据一席之地。
你的想法是什么?通过评论部分与我们分享。