gpt4 book ai didi

linux - 最佳实践 : deploying depencencies on Linux

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:10 24 4
gpt4 key购买 nike

发布自己的应用程序时,在 Linux 上部署依赖项的最佳做法是什么?

一些 SO 帖子建议在包中包含所有依赖项(利用 LD_LIBRARY_PATH),其他帖子建议只运送二进制文件并使用 DEB/RPM 包的“依赖项”功能。我尝试使用第二种方法,但立即遇到了一个问题,即在某些 Linux 发行版中似乎还没有一个依赖项 (libicu52)。例如,在我的 OpenSuse 测试安装中,包管理器中只有“libicu51”可用。

我最初以为打包系统的整个思路是为了避免系统中出现重复的SO文件。但它真的有效吗(见上文),或者我应该将所有依赖项与我的应用程序一起提供,以确保它在所有发行版上运行?

最佳答案

对于自定义应用程序,它“不关心”特定于分发的打包、版本控制、升级等。我建议手动重新分发依赖项。

您可以使用 RPATH 链接器选项,通过将它的值设置为 $ORIGIN 您将告诉链接器搜索目录中的库,相对于该二进制文件,而不需要执行前预先设置LD_LIBRARY_PATH:

  gcc -Wl,-rpath,'$ORIGIN/../lib'

示例取自 here .

关于linux - 最佳实践 : deploying depencencies on Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25544044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com