我想导出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
然后加载它们。