在 debian/control 文件中正确指定 Depends

在 debian/control 文件中正确指定 Depends

我正在构建一个运行时共享库​​包,libfoo0.deb其中0这是一个主要包版本,并遵守中指定的命名约定Debian 政策

问题是我想libbar根据运行时共享库​​包构建另一个共享库libfoo0。所以我正在考虑添加一个依赖节,但我不确定是否有必要指定一个版本,例如

Depends: libfoo0 (= 0.0.4)

这是构建0.0.4的版本libfoo0-dev.deb(包含开发文件/必要的符号链接的包/usr/lib/) 。libbar我看到的问题是这会禁止用户更新libfoo0.

问题:只要libfoo0二进制文件在主要库版本之间向后兼容,是否不需要指定对libfoo0构建的库/二进制文件的确切版本的依赖关系?

答案1

如果您的构建包含dh_shlibdepsdpkg-shlibdeps(如果您正在使用dh,这将被处理),您应该添加

Depends: ${shlibs:Depends}

tolibbarcontrol文件,并且将为您添加适当的依赖项。

您不应该对特定版本进行硬编码,除非需要同步升级库。这个想法是,具有相同主要版本的库应该向后兼容,因此只要您的版本大于或等于您需要的版本,就应该没问题。这些工具也会为您处理这个问题;您可能需要手动添加一个shlibssymbols文件到libfoo; IIRC 构建会告诉您何时需要处理该问题。

相关内容