如何确保debian包没有依赖性

时间:2013-10-05 00:37:42

标签: deb

我正在使用dpkg构建debian包。

该软件包依赖于libvirt,这是不可取的。

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

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

1 个答案:

答案 0 :(得分:3)

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

如果这是你的问题,那么正确的修复取决于与libvirt相关联的内容。应该直截了当地确定;只需在包中的每个二进制或共享库对象上运行ldd,然后为“libvirt”运行grep。

如果链接到libvirt的东西只是附带的,并且不是主要功能的一部分,那么使用推荐:确实是正确的。要使dh_shlibdeps从其依赖项扫描中排除该对象,请为其指定-X选项。 debian/rules的示例目标,假设debhelper7样式的包装:

override_dh_shlibdeps:
        dh_shlibdeps -Xname_of_your_object_to_exclude

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