免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6360 | 回复: 6
打印 上一主题 下一主题

设置环境变量LD_LIBRARY_PATH的问题,求教各位了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-29 16:28 |只看该作者 |倒序浏览
我这里有两台hp的服务器,一台是root用户,一台是普通用户。
现在我写了一个shell,其中有一条语句是设置环境变量LD_LIBRARY_PATH。
如下所示:
#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/wbp/lib;export LD_LIBRARY_PATH

在普通用户的那台机器上,可以正确设置LD_LIBRARY_PATH,但是在root用户的机器上,每次执行shell都会报告说找不到变量LD_LIBRARY_PATH。

这是怎么回事呢?应该如何解决?

[ 本帖最后由 sirdan 于 2009-9-29 16:49 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-09-29 16:36 |只看该作者
看似没有问题

论坛徽章:
0
3 [报告]
发表于 2009-09-29 16:40 |只看该作者
多谢楼上,语句的确没有问题。因为在普通用户机器上,是可以正确执行的。

另外,在root用户机器上面,如果环境变量里面已经存在LD_LIBRARY_PATH了的话,shell程序也可以正常执行。如果事先不存在LD_LIBRARY_PATH,那就会报错。

我发现,有一些软件的安装,在执行shell程序时,要求非root用户。莫非,root用户在设置环境变量时,有特殊之处?

论坛徽章:
0
4 [报告]
发表于 2009-09-30 10:58 |只看该作者
你之前定义过LD_LIBRARY_PATH么?
如果没有定义的话,我觉得你的语句是有问题的,因为无法知道LD_LIBRARY_PATH的值,
LD_LIBRARY_PATH=$LD_LIBRARY_PATH=/opt/wbp/lib就会报错。
关于你说,普通用户可以实现,是因为超级用户比它多了验证。

论坛徽章:
0
5 [报告]
发表于 2009-09-30 11:02 |只看该作者
原帖由 rainer_man 于 2009-9-30 10:58 发表
你之前定义过LD_LIBRARY_PATH么?
如果没有定义的话,我觉得你的语句是有问题的,因为无法知道LD_LIBRARY_PATH的值,
LD_LIBRARY_PATH=$LD_LIBRARY_PATH=/opt/wbp/lib就会报错。
关于你说,普通用户可以实现 ...



先echo检查下

论坛徽章:
0
6 [报告]
发表于 2009-09-30 14:40 |只看该作者
如4楼所言,root用户多了验证的步骤,导致shell无法正常执行下去。如果环境变量LD_LIBRARY_PATH事先已经存在的话,那么,我之前的程序是没有问题的。但如果LD_LIBRARY_PATH不存在,那么就会报告说找不到LD_LIBRARY_PATH。

在普通用户下,不存在这个问题,因为不会去检查,所以,无论有没有设置LD_LIBRARY_PATH,程序都会把LD_LIBRARY_PATH设置进去(如果之前有设置LD_LIBRARY_PATH,程序并不会覆盖掉以前的值)。

所以,要想在root权限下让程序正确执行,必须加入检验步骤,修改如下:

if [ `env | grep -c "LD_LIBRARY_PATH"` -ge 1 ];
then
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/wbp/lib;export LD_LIBRARY_PATH
else
    LD_LIBRARY_PATH=/opt/wbp/lib;export LD_LIBRARY_PATH
fi

经过验证,以上程序运行正常。

论坛徽章:
0
7 [报告]
发表于 2011-05-06 16:30 |只看该作者
考个古

这里不可以用这个吗?
LD_LIBRARY_PATH+=/opt/wbp/lib;  export LD_LIBRARY_PATH
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP