【问题标题】:How to get automake, libtool, and rpmbuild to work together如何让 automake、libtool 和 rpmbuild 协同工作
【发布时间】:2011-09-24 12:54:15
【问题描述】:

我正在尝试为我的软件包创建一个 RPM,它是使用 automakelibtool 构建的,但我遇到了一个问题:rpmbuild 在发现软件包的已安装程序包含包的可共享库的安装目录的路径名(由于automake 使用了ld-rpath 选项)。

我了解rpmbuild 这样做是为了保证包是可重定位的。我的问题是如何处理它。我可以取消使用可共享库(并失去它们的好处),或者我可以告诉automake 不要安装可共享库(这将阻止它使用-rpath 选项)然后无论如何都要安装它们。后一种选择的代价是要求用户总是有一个正确设置的LD_LIBRARY_PATH 环境变量——而且它看起来有点杂乱无章。

还有其他选择吗?

你会怎么做?

【问题讨论】:

  • 如果您将库安装为与可执行文件不同的包,问题应该会消失。
  • 虽然我不喜欢它,但这是另一种可能的解决方案。我会记住的。
  • @William Pursell:我知道这通常是在 debian 上完成的事情(参见例如,zeromq-binlibzmq0libzmq-dev 都来自一个源代码包)。您是否有显示 RPM 最佳做法的链接?
  • @Jack 我没有链接——总的来说,我已经找到了这类不好和/或过时的文档。我将在今天晚些时候尝试发布一个示例规范文件,以换取我相信它应得的所有批评!
  • @Jack 这看起来很有希望:tinymelinux.com/doku.php/build-rpms:splitting(不过我还没有完全阅读)

标签: unix rpm automake libtool rpmbuild


【解决方案1】:

这方面的细节取决于特定包的构建系统以及它使用的 libtool 版本。

以下是 Fedora 的相关打包指南:http://fedoraproject.org/wiki/PackagingGuidelines#Beware_of_Rpath

这是来自 Debian 的类似页面:http://wiki.debian.org/RpathIssue

维基百科也有一些相关链接:http://en.wikipedia.org/wiki/Rpath_(linking)

因此,您需要尝试一些建议的技术来摆脱 rpath,但哪种方法可行取决于您的包的具体情况。

【讨论】:

    猜你喜欢
    • 2020-01-17
    • 2017-11-15
    • 2020-01-13
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多