环境变量LD_LIBRARY_PATH的传递

Posted johnsonshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环境变量LD_LIBRARY_PATH的传递相关的知识,希望对你有一定的参考价值。

 

http://bbs.chinaunix.net/thread-3680861-1-1.html

execv明显没有传环境变量,execle或execve才会带
在启动shell设置的LD_LIBRARY_PATH根本传不到b程序

 

http://bbs.pediy.com/thread-217130.htm

为了使 Set-UID 程序更加安全,不受LD_LIBRARY_PATH环境变量的影响,

运行时的链接器或加载器(ld.so)会忽略环境变量,如果程序是个 Set-UID 程序。

 

http://www.cnblogs.com/tonychai/p/4624979.html

export  LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是默认登出后就失效

 

同样事例,可惜没有方案:

apache httpd 如何修改 LD_LIBRARY_PATH,一直修改失败
ver:httpd 2.4.7 mod_fcgid-2.3.9
目前使用 mod_fcgid-2.3.9 解析C/C++编写的fastcgi和cgi,名称是 a.fcgi,发现无法启动,
错误是
error while loading shared libraries: liblog4cplus-1.1.so.9: cannot open shared object file: No such file or directory

因为我们准备写的cgi 需要链接一个动态库 liblog4cplus-1.1.so.9。
但是发现无法修改 LD_LIBRARY_PATH,我们不希望这个动态库放到系统目录下,或者修改全局的/etc/ld.so.conf,
所以放到了一个指定的目录 /usr/local/aa/liblog4cplus-1.1.so.9下。我们修改了下面的文件
/usr/local/apache/bin/envvars
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf
对应增加了(/usr/local/aa),大致语法如下
SetEnv LD_LIBRARY_PATH /usr/local/apache/lib:/usr/local/aa
SetEnv LD_LIBRARY_PATH_a ${LD_LIBRARY_PATH}:/usr/local/aa
LoadModule fcgid_module modules/mod_fcgid.so 

后面我们发现,变量 LD_LIBRARY_PATH_a ,cgi 能读取到,但是变量 LD_LIBRARY_PATH
无法修改,一直都是 LD_LIBRARY_PATH=/usr/local/apache/lib。
导致链接指定动态库的 cgi 一直失败!!

以上是关于环境变量LD_LIBRARY_PATH的传递的主要内容,如果未能解决你的问题,请参考以下文章

linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)

在python脚本中设置环境变量

关于 LD_LIBRARY_PATH 这个环境变量

LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别

Golang SSH 加载 LD_PRELOAD 和 LD_LIBRARY_PATH 环境变量

Linux环境变量设置(PATH/LIBRARY_PATH/LD_LIBRARY_PATH)