为什么琐碎的包要依赖 dpkg?

为什么琐碎的包要依赖 dpkg?

我最近一直在探索最小系统;采用单个包并处理支持它所需的依赖项(仅此而已)。

我很惊讶地看到dpkg它在多个地方作为依赖项出现,并且对于几乎没有理由具有依赖项的包。例如readline-common。该软件包仅包含以下文件:

/usr/share/readline/inputrc
/usr/share/lintian/overrides/readline-common
/usr/share/doc/readline-common/changelog.Debian.gz
/usr/share/doc/readline-common/copyright
/usr/share/doc/readline-common/changelog.gz
/usr/share/doc/readline-common/inputrc.arrows
/usr/share/man/man3/readline.3readline.gz
/usr/share/man/man3/history.3readline.gz
/usr/share/info/rluserman.info.gz

它既不是postinst脚本prerm参考dpkg,也不是与之明显相关的任何内容。

同样地python3-minimal

我只是想知道为什么dpkg会出现为琐碎包的依赖项?

答案1

可能是因为它取决于特定或最低版本的dpkg.通常,dpkg 不需要被列为依赖项,因为它已被标记Essential: yes- 不可能有一个未dpkg安装的 Debian 系统,除非您不遗余力地破坏您的系统(然后它就不是真正的 Debian)系统不再,这是一个破碎的烂摊子)。

例如,如果您查看 的 Depends: 行python3-minimal,它会显示:

Depends: dpkg (>= 1.13.20)

这意味着它需要 1.13.20dpkg或更新版本。此版本依赖项确保python3-minimal至少在该版本安装后才会安装或升级。

我不知道为什么 python3-minimal需要该版本的dpkg.我只能假设python3-minimal软件包维护者知道或发现它会与任何早期版本一起破坏。最有可能的是,它的前/后脚本之一需要一项dpkg直到 1.13.20 版本才出现的功能。

如果我真的想知道,但实际上我不想知道:-),我可以阅读 中的更改日志/usr/share/doc/python3-minimal,或 中的错误报告历史记录bugs.debian.org。它们是最有可能找到提及原因的地方。或者也许在debian 开发档案或邮件列表以及文档和政策Debian Python 团队


同样,readline-common取决于dpkg版本 1.15.4 或更高版本或install-info

Depends: dpkg (>= 1.15.4) | install-info

如果您查看/usr/share/doc/dpkg,您会发现近 100 处提到了 install-info。 1.15.4 的变更日志条目(日期为 2009 年 9 月 6 日)表示:

  • 用 GNU 安装信息的包装器替换安装信息。包装纸将在挤压+1时掉落。 dpkg 现在中断:旧版本的信息浏览器不依赖于提供实际功能的新安装信息包。关闭:#9771、#523980

相关内容