Linux 如何透明地调整硬编码文件系统路径?
我需要执行一个编译程序,对不同的文件系统路径进行硬编码,这些路径具有不同的值。出于实际原因,调整程序的源代码并重新编译它不是一个选项。此外,不接受使用符号链接替换硬编码文件,或以任何其他方式更改硬编码文件 我只能想到两种解决方案:LD_预加载挂钩和修补二进制文件。前者似乎更容易、更可靠。有没有更好的解决方案,或者一些现有的软件来解决这个问题Linux 如何透明地调整硬编码文件系统路径?,linux,filesystems,ld-preload,hardcoded,Linux,Filesystems,Ld Preload,Hardcoded,我需要执行一个编译程序,对不同的文件系统路径进行硬编码,这些路径具有不同的值。出于实际原因,调整程序的源代码并重新编译它不是一个选项。此外,不接受使用符号链接替换硬编码文件,或以任何其他方式更改硬编码文件 我只能想到两种解决方案:LD_预加载挂钩和修补二进制文件。前者似乎更容易、更可靠。有没有更好的解决方案,或者一些现有的软件来解决这个问题 另外,我知道我说的是可怕的黑客。所讨论的硬编码软件广泛分布在Linux发行版上,但它似乎完全没有维护,而且我认为在我认为可以接受的时间内,没有任何机会获得补
另外,我知道我说的是可怕的黑客。所讨论的硬编码软件广泛分布在Linux发行版上,但它似乎完全没有维护,而且我认为在我认为可以接受的时间内,没有任何机会获得补丁,更不用说让它进入发行版了。自己重建它。。。当然,假设它是开源的。@JimGarrison请阅读整个问题。。。由于实际的原因,调整程序的源代码并重新编译它不是一个选项。“它是开源的,我认为对于我的软件(包括我)的用户来说,这样做太不切实际了。特别是因为每个Linux发行版的过程都不同,这里没有简单的答案。你的要求封锁了所有可能的途径。唯一真正的解决方案是找到所有硬编码字符串,并将软件更改为从参数文件读取值。然后将补丁提交给项目,以利于未来用户。这就是开源的全部意义。另外,请注意,您甚至还没有告诉我们您在谈论什么O/S项目。这也可能有助于找到解决方案。你已经排除了软链接,但是硬链接呢?不幸的是,如果没有关于这个问题的更多细节,很难理解你的选择是什么。我想你是在分发依赖于其他东西的软件。。。