使用 Pacman 的包管理策略

phu*_*ehe 8 arch-linux pacman package-management

自从我将我最喜欢的发行版切换到 Gentoo 以来,我非常熟悉以下安装和删除软件包的模式:

  1. 安装一堆几乎相同的应用程序来试用它们:emerge <package>. 此命令安装包,并将包标记为显式安装。
  2. 不要尝试出来并删除那些我不喜欢(希望保持一个或两个能满足我的需求)emerge --deselect <package>。此命令从显式安装的应用程序列表中删除包,但不会卸载包。
  3. 最后删除我系统上不需要的所有内容:emerge --depclean. 此命令删除 (1) 不是系统包、(2) 未显式安装和 (3) 不是这两者的依赖项的所有包。
  4. 和可选检查所有软件包的依赖关系是确定:revdep-rebuild。此命令检查所有依赖项并重新安装损坏的包。

偶尔我会查看/var/lib/portage/world(显式安装的软件包列表)中的条目以查看我使用的顶级应用程序,并使用步骤 2、3 和 4 中的命令删除那些我不再使用的应用程序.

现在我正在尝试学习 Arch,我想知道我是否可以对 Pacman 使用相同的策略?或者另一种策略可以让我的系统清除未使用的包?

注意:Pacman Rosetta对快速理解事物有很大帮助,但我无法弄清楚 Arch 的等效/var/lib/portage/world文件。pacman -Qe据说这样做,但它包含我发誓我没有明确安装的东西......无论如何请从策略的角度回答这个问题(当然还有命令示例:)

phu*_*ehe 2

感谢 DarwinSurvivor 的回答,我能够更好地理解 Arch 中的包管理是如何工作的。现在我可以应用与 Gentoo 相同的策略(稍加修改)。问题中命令的“等效项”分别是:

  1. pacman -S <package>
  2. pacman -D --asdeps <package>
  3. pacman -Rs $(pacman -Qqtd)
  4. 不可用/不需要

Gentoo 中最接近的/var/lib/portage/world是命令的结果pacman -Qe。差异:

  1. Arch 有包组,基本上是几个包以一个名称“分组”在一起。安装组后,组中的所有内容都被视为显式安装。
  2. Arch 没有“系统包”,因此从结果中减少项目pacman -Qe实际上会导致重要的包被删除。