首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用debhelper创建Debian包:更改依赖关系版本

用debhelper创建Debian包:更改依赖关系版本
EN

Stack Overflow用户
提问于 2015-05-31 09:50:42
回答 1查看 430关注 0票数 1

我正在使用DebHelper创建一个Debian包,它位于Debian的最新稳定版本之下。

"debian/control“文件包括以下几行:

代码语言:javascript
复制
Depends:
 ${shlibs:Depends},
 ${misc:Depends}

因此,在创建的包中自动设置依赖项。然而,libstdc++所需的版本太严格了。这个包需要libstdc++6 (>= 4.9),我希望将它设置为libstdc++6 (>= 4.8)。

为此,在阅读这个页面和这个页面时,我编辑了"debian/rules“文件,现在看起来如下:

代码语言:javascript
复制
#!/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包上做过这种定制了吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-05-31 18:49:39

通常情况下,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.9,它会自动启用功能-- libstdc++6中的一些实现细节发生了更改,这使得产生的二进制文件不兼容(或者至少:不向后兼容)。

如果您想要一个可以与libstdc++6 == 4.8一起使用的包,那么就应该使用libstdc++6-4.8 (或者最有可能的是:整个g++4.8工具链)来构建包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30556057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档