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


Answers:


20

不用了 根据发行版,将目录添加到中的目录/etc/ld.so.conf或新文件中/etc/ld.so.conf.d/

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

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

(实际上,提取系统范围的环境变量并不容易。您可以使用来获得大多数用户的登录/etc/environment。脚本将取决于您的init系统,但是(例如)在Debian上使用sysv init时,您可以将其放在/etc/default/rcS。直接从inittab中跑出来,嗯,我认为你不能。)


@bahamat我猜是由于编辑重叠,您从我的答案中删除了一段。我会加回去..
derobert

不,我刚刚删除了它,因为“您不需要”已经对其进行了总结,并且更加简洁。
bahamat 2012年

@bahamat检查编辑日志,unix.stackexchange.com / posts / 46620 / revisions ...我想发生了什么事,我们都点击了编辑链接,然后我提交了更改(额外的段落),然后您提交了更改(当然,其中不包括多余的段落)。似乎StackExchange应该检测到并大声警告,但显然不应该……
derobert

不,我只是明确删除了该段,因为我认为这是不必要的。我没有做任何其他更改。我们的剪辑相距600万,而我之后的剪辑则是1200万。这不是碰撞。
bahamat 2012年

@bahamat Ah,留下编辑评论将消除混乱……
derobert

3

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

ldconfig -v 

然后加载它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.