Debian软件包管理系统中的“软件包选择数据”是什么?

时间:2018-03-30 14:54:04

标签: debian package-managers dpkg

我正在学习Debian的包管理系统并阅读Chapter 2. Debian package management。但我很难理解“选择”的概念,或者“包选择”。更具体地说:

  • 究竟什么是“套餐选择”?
  • “套餐选择”选择了什么?
  • 在什么情况下我需要关心“套餐选择”?

例如,每当我想知道我的系统上是否安装了软件包时,我通常会运行dpkg --get-selections 'PACKAGE-NAME'。坦率地说,我不知道为什么选项被称为get-selections,为什么我应该使用它。我转向dpkg manpage,但没有进一步解释。上面的章节似乎也没有解释。

在我阅读Debian参考资料时,我看到另一个名为dselect的工具,它也有助于管理软件包。我也很好奇为什么它被称为“选择”,这可能是理解“选择”概念的暗示。

根据我目前的研究,我猜测它是什么:

  • “选择”可能与同一包的多个版本有关。我可以在我的系统上安装所有版本,但“选择”指定哪个版本是活动版本。
  • “选择”可能与用于相同目的的替代包有关。例如,我可以在我的系统上安装vivimnvi,“选择”指定哪一个是有效使用的。

然而,上述理解看起来不正确,因为这似乎是通过使用符号链接来解决的。

希望有人能向我解释。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

如果您编写dpkg --get-selections(此命令通常包含在crontab中,以便我们备份计算机上安装的实际软件包),您将获得所有软件包的列表,已安装和已卸载(但未清除)。

因此选择是包的状态之一:

  • 安装:已安装软件包
  • deinstall:不再安装软件包(但配置文件是keep,因此软件包不像未安装(或清除)的软件包)。 dpkg仍然跟踪配置文件。

据我所知,你也可以告诉dpkg 安装 hold deinstall purge --set-selections

这是一种选择,所以这个名字。还有其他状态(安装成功,postinst上出错,出现错误,......)。

注意:Debian参考手册是一本非常古老的手册,“有机地”增长。随意填写一个bug(未成年人或愿望),以便志愿者可以改进它。