我最近一直在探索最小系统;采用单个包并处理支持它所需的依赖项(仅此而已)。
我很惊讶地看到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