使用debhelper创建Debian包:更改依赖项版本
我正在Debian的最新稳定版本下使用DebHelper创建一个Debian包 “debian/control”文件包括以下几行:使用debhelper创建Debian包:更改依赖项版本,debian,package,libstdc++,debhelper,Debian,Package,Libstdc++,Debhelper,我正在Debian的最新稳定版本下使用DebHelper创建一个Debian包 “debian/control”文件包括以下几行: Depends: ${shlibs:Depends}, ${misc:Depends} 因此,依赖项将在创建的包中自动设置。但是,libstdc++所需的版本过于严格。该包需要libstdc++6(=4.9),我希望将其设置为libstdc++6(=4.8) 为此,在阅读此和此时,我编辑了“debian/rules”文件,该文件现在看起来像: #!/usr/b
Depends:
${shlibs:Depends},
${misc:Depends}
因此,依赖项将在创建的包中自动设置。但是,libstdc++所需的版本过于严格。该包需要libstdc++6(=4.9),我希望将其设置为libstdc++6(=4.8)
为此,在阅读此和此时,我编辑了“debian/rules”文件,该文件现在看起来像:
#!/usr/bin/make -f
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
%:
dh $@
override_dh_makeshlibs:
dh_makeshlibs -V 'libstdc++6 (>= 4.8)'
然而,最后两行并没有起作用。有人在Debian软件包上做过这种定制吗
谢谢一般来说,debhelper在检测依赖项方面做得非常好 如果它说您的软件包需要
libstdc++6(>=4.9)
,那么您的软件包很可能需要此特定版本,并且会失败,例如libstdc++6-4.8
。(如果您不相信我,请尝试一下;强制将您的软件包安装在只安装了libstdc++6-4.8的系统上,然后看看是否一切正常)
如果有人声称它可以用libstd++6-4.8
(或者更确切地说是gcc-4.8
)构建,那么我会考虑以下可能性:
- 要么是那些人错了
- 或者二进制文件(在您的包中)将略有不同,这取决于它是基于libstdc++6-4.8还是4.9构建的
如果您想要一个可以与libstdc++6==4.8一起使用的包,那么您应该使用
libstdc++6-4.8
(或者很可能是整个g++4.8工具链)来构建包。我已经阅读了文档,您提出的解决方案似乎有效。当您检查生成的DEBIAN/control
文件时,它是否包含任何特定版本?您说过您正在为最新的Debian stable(我假设jessie)构建包,它包了libstdc++6
4.9.2。在这些条件下是否有必要放宽版本要求?(换句话说,包针对不同的分发工作不是更好吗?)生成的DEBIAN/control就是包完成后我检查的内容。我有Jessie,正如您所说,她将lidstdc++4.9.2打包。我不知道这是不是一个好主意,但是其他人说软件可以用版本4.8构建,所以我可以在软件包中放松版本。因此,该包将与其他基于debian的发行版兼容。