deb - 如何确保 debian 软件包没有依赖项

标签 deb

我正在使用 dpkg 构建 debian 软件包。

该软件包依赖于 libvirt,这是不需要的。

规则文件没有指定此依赖项,但它是由 dpkg 添加的,我想是由于在构建时对 libvirt-dev 的一些调用所致。

但是我的包在没有 libvirt 的情况下工作正常。因此,libvirt 是“推荐”包,但不是“必需”包。如何覆盖此依赖项并确保它不存在于我的最终 deb 文件中?

最佳答案

如果没有看到你的实际包,很难知道,但我猜你有一个与 libvirt 链接的二进制或共享库。这将导致 dh_shlibdeps 将 libvirt 包含在 ${shlibs:Depends} 子变量中。

如果这是您的问题,那么正确的修复取决于链接到 libvirt 的内容。它应该很容易确定;只需在包中的每个二进制或共享库对象上运行 ldd ,然后运行 ​​grep 来查找“libvirt”。

如果与 libvirt 链接的内容只是软件包的附带内容,而不是主要功能的一部分,那么使用 Recommends: 确实是正确的选择。要使 dh_shlibdeps 将该对象从其依赖项扫描中排除,请为其指定 -X 选项。 debian/rules 的示例目标,假设 debhelper7 风格的打包:

override_dh_shlibdeps:
        dh_shlibdeps -Xname_of_your_object_to_exclude

如果链接到 libvirt 的东西实际上是包功能的重要组成部分,那么生成的 libvirt 依赖项是合适的。如果您仍然不想要它,您需要弄清楚如何在构建过程中避免链接到 libvirt。

关于deb - 如何确保 debian 软件包没有依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192751/

相关文章:

ubuntu中的Unity3D场景空白

git - 源代码存储库的布局是否应与 .deb 构建目录结构相匹配?

windows - Maven 多平台依赖包

python - "python setup.py install"命令未在 install_requires 列表中安装库

bash - .deb package postinst 调用包中的另一个脚本

没有 JRE 的 JavaFX DEB 包不起作用

couchdb - 如何声明 .deb 包的非 .deb 二进制依赖项?

ubuntu-14.04 - SaltStack状态以安装.deb软件包文件和依赖项

python-3.x - E : Unable to locate package python3-fpylll

java - 分发一个 jar