如何将库/可执行文件 RPATH 修补为不同的值?

How can a library / executable RPATH be patched to a different value?

我知道可以使用 -rpath 链接器选项设置可执行文件或库的 "search path"。当依赖项安装在对象加载器通常不考虑的非标准位置时,这很有用,通常认为优于设置 LD_LIBRARY_PATH 环境变量。

但是,在我的具体情况下,集成测试机器和生产机器之间的路径 不同 that 的意义不大,不幸的是,不适合讨论。)

我真的更喜欢对集成测试和生产平台使用相同的包。我的想法是提供一个选择正确目标目录的安装脚本,然后将库/可执行文件 RPATH 修补为正确的值。

此时我发现我不知道...

如何将库/可执行文件 RPATH 修补为不同的值?

我假设有一些命令行工具可用于此,但我不知道。

如果它很重要,我正在使用 CMake setup 来构建和创建 .tgz 包 (cpack -G TGZ)。不幸的是,"Real" 包(RPG、DEB)不是一个选项。

您正在寻找,patchelf and/or chrpath