如何将LD_LIBRARY_PATH导出到所有用户和系统服务

如何将LD_LIBRARY_PATH导出到所有用户和系统服务

我想导出LD_LIBRARY_PATH到系统服务和所有用户。系统服务在登录之前运行,因此.bashrc不适用。

如何实现这一目标?

答案1

你不需要。添加目录/etc/ld.so.conf或新文件/etc/ld.so.conf.d/,具体取决于发行版。

之后,您必须以 root 身份运行(至少在 Redhat 上)ldconfig

需要注意的是,您需要小心将哪些库添加到系统共享库路径(通过环境、ld.so.conf 或放入 /usr/local/lib)。特别是,您要小心具有相同 soname 的同一库的两个不同版本。例如,如果您通过 dpkg/rpm/etc 安装了 libfoo.0.1(soname libfoo.0),则您不希望在自定义库目录中出现 libfoo.0.2(也是 soname libfoo.0)。

(实际上,实现系统范围的环境变量并不那么容易。/etc/environment您可以使用/etc/default/rcS.直接从 inittab 运行,好吧,我认为你不能。)

答案2

您可以添加文件中的每个路径,然后/etc/ld.so.conf.d运行:

ldconfig -v 

然后加载它们。

相关内容