【问题标题】:how to make sure a debian package does not have a dependency如何确保 debian 包没有依赖项
【发布时间】:2013-10-05 00:37:41
【问题描述】:

我正在使用 dpkg 构建一个 debian 包。

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

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

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

【问题讨论】:

    标签: deb


    【解决方案1】:

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

    如果这是您的问题,那么正确的解决方法取决于与 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-06
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2014-03-27
      • 2016-04-03
      • 2017-08-03
      相关资源
      最近更新 更多