当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 解决ubuntu 8.10以上版本中LD_LIBRARY_PATH失效的问题
帖子发表于 : 2010-03-29 14:37 
头像

注册: 2008-07-03 19:25
帖子: 125
送出感谢: 0 次
接收感谢: 0 次
解决ubuntu 8.10以上版本中LD_LIBRARY_PATH失效的问题

参考:https://bugs.launchpad.net/ubuntu/+bug/366728

很多用linux写程序的人在经历了从ubuntu 8.10版本升级之后都会发现这样的问题,就是原来在旧版本系
统中设置的LD_LIBRARY_PATH环境变量,在新的版本中就失效了(该问题发生在 9.04、9.10中,不知是否
会发生在今年4月即将发布的10.04中)。比如你是在/etc/profile这个文件中设置的 LD_LIBRARY_PATH
环境变量,然后必须在命令行中输入"source /etc/profile",LD_LIBRARY_PATH环境变量才会生效。

这对我们写程序的人来说是一个大问题。有人说这是ubuntu的一个bug,也有人说这是为了安全考虑而进行
的设计,说来说去,我们得找到一个可行的办法来解决这个问题。

[方法1]
有人建议在 ~/.bashrc中设置LD_LIBRARY_PATH,但是这样的话达不到在gnome中的全局效果,只是在终
端中有用。

[方法2]
该方法可以达到在genome中到全局效果,该方法就是不设置LD_LIBRARY_PATH环境变量,而是使用
/etc/ld.so.conf.d/*.conf来配置你的链接库文件。

举个例子,我编译了BALL之后,生成的链接库的地址是:
/home/zzm/ProgramFiles/BALL/BALL-1.2/lib/Linux-i386-g++_4.1.3
有两个库文件: libBALL.so 和 libVIEW.so .

下面是我的配置过程:
zzm@zzm-desktop:~$ echo "/home/zzm/ProgramFiles/BALL/BALL-1.2/lib/Linux-i386-g++_4.1.3" | sudo tee /etc/ld.so.conf.d/BALL-lib.conf
zzm@zzm-desktop:~$ sudo ldconfig -v

这样,你的链接库文件就被加入了系统的默认链接库配置中。如果日后需要卸载这个库的话,删除刚才建立
的配置文件,再次执行"sudo ldconfig -v" 命令即可。

[方法3]
运行下面到命令可以很好到达到目的:

zzm@zzm-desktop:~$ echo STARTUP=\"/usr/bin/env LD_LIBRARY_PATH=\${LD_LIBRARY_PATH} \${STARTUP}\" | sudo tee /etc/X11/Xsession.d/90preserve_ld_library_path
zzm@zzm-desktop:~$ sudo reboot

其实关于LD_LIBRARY_PATH,它只是在genome里面被"和谐"掉了,我们需要重新在genome里面"审视"并
重视它的存在!


个人觉得第三种方法是最好的!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译