如何从由 shlibs:Depends 生成的 Depends 行中删除 ia32-libs?

如何从由 shlibs:Depends 生成的 Depends 行中删除 ia32-libs?

我创建了一个包含 32 位库的软件包,用于兼容 64 位系统上的 32 位应用程序,存储在 中/usr/lib32。这会导致ia32-libs依赖项添加到我的软件包中。但是,如果没有这些库,该软件包也可以正常工作,因为其他 32 位程序应该ia32-libs自行安装。

我如何防止构建过程生成ia32-libs依赖项?nvidia-current似乎也能做到这一点,但使用了我不使用的 CDBS。(我使用rules生成的纯文件dh_make

答案1

ia32-libsDebian Multiarch 实施指南中明确介绍了如何删除依赖项:

http://wiki.debian.org/Multiarch/Implementation

这基本上意味着如果某些 dpkg 工具在指定多架构时发出了太多包,那么这是一个工具错误,现在是提交报告的好时机。

答案2

为了让 debhelper 忽略 32 位库,我必须添加一个忽略路径的目标包含 /usr/lib32

override_dh_shlibdeps:
    dh_shlibdeps --exclude=/usr/lib32

此后,ia32-libs 依赖项将不再计算。由于此目标仅适用于 64 位系统,因此我实际上对 virtualgl 包使用了以下代码片段:

ifeq ($(DEB_BUILD_ARCH), amd64)
override_dh_shlibdeps:
    dh_shlibdeps --exclude=debian/virtualgl/usr/lib32
endif

请注意,之前的空格dh标签

相关内容