构建 Debian 包 - 依赖关系如何工作?

构建 Debian 包 - 依赖关系如何工作?

我正在构建一个 debian 软件包。目标是将一个目录打包成一个 .deb 文件,该文件将具有 2 个依赖项,即我创建的其他软件包。

安装 .deb 包时,我看到有关缺少依赖项的错误,这很好,但是即使缺少依赖项,它仍然会转储目录和内容。

我的问题是,这是否是适当的行为?如果缺少依赖项,我不希望创建和填充目录。任何帮助都将不胜感激!

谢谢!

输出。

dpkg -i hdf5.deb
Selecting previously unselected package hdf5.
(Reading database ... 305222 files and directories currently installed.)
Unpacking hdf5 (from hdf5.deb) ...
dpkg: dependency problems prevent configuration of hdf5:
 hdf5 depends on szip (>= 2.9); however:
  Package szip is not installed.

dpkg: error processing hdf5 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 hdf5

答案1

您的问题是,您正在使用 安装您构建的软件包,该软件包具有您尚未安装的依赖项dpkg。虽然dpkg将安装软件包,但它不会解决依赖关系并为您安装缺少的软件包。您需要使用 从apt档案中提取来安装它们,或者如果您有.deb所需软件包的 ,则需要先安装它,或者与新软件包同时安装,使用dpkg

您描述的是Depends生成的二进制包所具有的,而不是Build-Depends源包需要构建的。将所有二进制包运行时依赖项放在Build-Depends控制文件中,是防止构建未安装它们的包的好方法。列举您拥有的所有依赖项也是很好的做法,而不是依赖于您依赖的其他包是否也需要它们来满足依赖项,以防止在您还需要的其他包中删除依赖项时中断。

相关内容