Debian 的包管理系统中的 "package selection data" 是什么?

What is the "package selection data" in Debian's package management system?

我正在学习 Debian 的包管理系统并且已经阅读 Chapter 2. Debian package management。但是我很难理解"selection"或者"package selection"的概念。更具体地说:

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

当我阅读 Debian 参考资料时,我看到了另一个名为 dselect 的工具,它也有助于管理软件包。我也很好奇为什么叫"select",这可能是理解"selection".

概念的一个提示

根据我目前的研究,我有一些猜测是关于什么的:

不过上面的理解好像不太对,好像是用符号链接解决了

希望有人能给我解释一下。感谢您的帮助!

如果你写 dpkg --get-selections(这个命令通常包含在 crontab 中,以便我们备份机器上安装的实际包),你会得到所有包的列表,安装和卸载(但不清除) ).

所以选择的是包的状态之一:

  • 安装:包已安装
  • deinstall:包不再安装(但配置文件保留,所以包不像未安装(或清除)的包)。 dpkg 仍然跟踪配置文件。

据我所知,您也可以告诉 dpkg installholddeinstall清除 (--set-selections)

这是一种选择,因此得名。还有其他状态(安装成功,postinst 错误,untar 错误,...)。

注意:Debian 参考手册是一本非常古老的手册,成长 "organically"。随意填写一个错误(小的或希望的),以便志愿者可以改进它。