Debian 和 Arch 的包管理差异

tsh*_*ang 9 arch-linux debian pacman apt package-management

这篇文章的讨论让我对 Debian 和 Arch 包管理之间的差异感到好奇。另外,人们倾向于说 Arch 非常轻量级,所以我想知道这与包管理有什么关系。是否可能是因为 Debian默认将Recommends视为硬依赖项?

您能否还提到两个包管理器之间的灵活性/功能:两者中的哪一个可以让您做得更多。

我知道 Debian 软件包管理系统上可用的某些功能与 Arch 系统无关,因为 Arch 有一个套件,而 Debian 有多个(例如 APT 固定和高级依赖处理),所以请比较以下功能适用于两个系统(即假设对于 Debian,我只使用stable)。

小智 7

几周以来我只是经常使用 arch 并且我不是该主题的专家所以这个答案绝不是详尽无遗的,只是我注意到的关于“灵活性/力量”的几点:

  • 这只是一个印象,但吃豆子的设计/架构似乎更现代和简单。至少要处理的工具要少得多。虽然我不知道 apt 源代码,但我只是碰巧查看了 libalpm 代码(pacman 的底层库),做了一个非常简单的补丁,看起来干净且易于理解。

  • 它也非常快(由于优化,也可能是因为关心很少的事情(见下文))。最后一个版本(pacman 3.5,几天前)试图通过减少涉及的数据库文件的数量来提高性能。

  • 虽然 arch 面向二进制包的使用,但它在从源代码构建包时也有优势,构建系统类似于 BSD 的端口 (ABS)。

  • 创建软件包非常简单快捷,只需在 PKGBUILD 文件中添加几行即可完成,无需像 Debian 软件包那样处理 control/rules/copyright/changelog/任何事情。只需在 Web ui 上单击几下,您的包就会与 AUR(Arch 用户存储库)上的每个人共享。

我在 Debian 而不是 arch 中得到的东西:

  • 触发器/钩子(是什么让 apt 更新图标缓存、mandb 或任何只是通过查看包安装文件的位置,而无需打包程序执行任何操作)(似乎有计划来实现这一点)。

  • debconf(没什么大不了的,顺便说一句,通过强迫我手动做事,它迫使我知道到底做了什么)和正确处理新配置文件(我至少希望 pacman 知道新包中的配置文件何时版本与已安装的版本不同,因为它在新版本中更改或因为我在本地修改了它)。

  • 包签名(似乎正在处理)。

对于 arch 是轻量级的,唯一真正的原因是它默认安装的软件包很少,并且鼓励您添加您需要的软件包,因此默认情况下不安装可选依赖项可能会促使用户安装以避免膨胀。


han*_*zer 6

我从 Ubuntu lucid 开始了我的 Linux 之旅,目前使用的是 Arch。我已经编写了一些 Arch 软件包,我会说它比编写 Debian 软件包要容易得多。但是,我想向@gentledevil指出,Arch 确实有一个用于包的钩子系统,称为install file.

基本上,它的名字是${pkgname}.install, 并包含一些用于安装前/后安装/删除/升级的功能;只需将您的字体缓存更新放在其中等等,它的工作方式与 Debian 挂钩几乎相同。

另外,我注意到您提到使用 debian 包管理工具“固定”应用程序;Arch 的 pacman 也有内置的,/etc/pacman.conf接受许多设置,包括IgnorePkg =,这将阻止升级到等号(空格分隔)之后列出的任何包