假设我有以下包:zs-boost_1.71.0_armhf.deb
。这是一个自定义包,它将boost 1.71安装到某个自定义位置(假定为/opt/deps
(。
我还有一个使用这个库的项目。它构建和运行良好。现在我正在打包它。我在debian/control
文件中有以下内容:
Depends: ${shlibs:Depends}, ${misc:Depends}
我使用debuild -b -us -uc -aarmhf
构建包。包可以按预期构建和运行。我唯一的问题是deb的control
文件中的Depends
条目如下:
Depends: Depends: libc6 (>= 2.9), libpq5 (>= 9.0~), zs-boost, init-system-helpers (>= 1.18~)
请注意,zs-boost没有版本。我该怎么修?它是由安装到自定义目录引起的吗?我认为,若包被正确识别,那个么它的版本也应该被使用?
debian/package.substvars
包含shlibs
的以下行:
shlibs:Depends=libc6 (>= 2.9), libssl1.1 (>= 1.1.0), libuuid1 (>= 2.16), zs-boost
我应该怎么做才能使依赖项得到正确的版本控制?请注意,我对手动提供版本号不感兴趣,这只是一个软件包,我们有20多个软件包不断更新和重建,手工操作是不可能的。
提前谢谢。
如果您想要一个版本化的依赖项,请在debian/control
中放入一个。
Depends: zs-boost (>= 1.71.0)
您在生成的shlibs
中看到的对特定版本的libc6
的版本化依赖最终取决于由包维护人员确定的类似的显式声明(通常是保守且谨慎的(。