Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何透明地调整硬编码文件系统路径?_Linux_Filesystems_Ld Preload_Hardcoded - Fatal编程技术网

Linux 如何透明地调整硬编码文件系统路径?

Linux 如何透明地调整硬编码文件系统路径?,linux,filesystems,ld-preload,hardcoded,Linux,Filesystems,Ld Preload,Hardcoded,我需要执行一个编译程序,对不同的文件系统路径进行硬编码,这些路径具有不同的值。出于实际原因,调整程序的源代码并重新编译它不是一个选项。此外,不接受使用符号链接替换硬编码文件,或以任何其他方式更改硬编码文件 我只能想到两种解决方案:LD_预加载挂钩和修补二进制文件。前者似乎更容易、更可靠。有没有更好的解决方案,或者一些现有的软件来解决这个问题 另外,我知道我说的是可怕的黑客。所讨论的硬编码软件广泛分布在Linux发行版上,但它似乎完全没有维护,而且我认为在我认为可以接受的时间内,没有任何机会获得补

我需要执行一个编译程序,对不同的文件系统路径进行硬编码,这些路径具有不同的值。出于实际原因,调整程序的源代码并重新编译它不是一个选项。此外,不接受使用符号链接替换硬编码文件,或以任何其他方式更改硬编码文件

我只能想到两种解决方案:LD_预加载挂钩和修补二进制文件。前者似乎更容易、更可靠。有没有更好的解决方案,或者一些现有的软件来解决这个问题


另外,我知道我说的是可怕的黑客。所讨论的硬编码软件广泛分布在Linux发行版上,但它似乎完全没有维护,而且我认为在我认为可以接受的时间内,没有任何机会获得补丁,更不用说让它进入发行版了。

自己重建它。。。当然,假设它是开源的。@JimGarrison请阅读整个问题。。。由于实际的原因,调整程序的源代码并重新编译它不是一个选项。“它是开源的,我认为对于我的软件(包括我)的用户来说,这样做太不切实际了。特别是因为每个Linux发行版的过程都不同,这里没有简单的答案。你的要求封锁了所有可能的途径。唯一真正的解决方案是找到所有硬编码字符串,并将软件更改为从参数文件读取值。然后将补丁提交给项目,以利于未来用户。这就是开源的全部意义。另外,请注意,您甚至还没有告诉我们您在谈论什么O/S项目。这也可能有助于找到解决方案。你已经排除了软链接,但是硬链接呢?不幸的是,如果没有关于这个问题的更多细节,很难理解你的选择是什么。我想你是在分发依赖于其他东西的软件。。。