论坛风格切换切换到宽版
  • 2023阅读
  • 8回复

[问题求助][RedHat] root用户下设置环境变量的一个奇怪问题 [复制链接]

上一主题 下一主题
 
发帖
2004
C币
-60800
威望
397
贡献值
1
银元
-2
铜钱
4591
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
..bash_profile 配置环境变量              乙肝
LD_LIBRARY_PATH=$LD_LIBRARY_PATHORACLE_HOME/lib:/lib:/usr/libhttp://upload.bbs.csuboy.com/Mon_1004/126_6774_00bc4ff17adaaa0.gif[/img]电影
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libBIPROG_ROOT/lib/http://upload.bbs.csuboy.com/Mon_1004/126_6774_00bc4ff17adaaa0.gif[/img].
export. LD_LIBRARY_PATH投资
echo $LD_LI.BRARY_PATH--- 印刷
然后用SH运行,[root@dmtest ~]#. sh .bash_prof.ile.
可以打印出来:/home/db2inst1/sqllib/lib32:/home/db..2ins.t1/sqllib/lib:/u01/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/lib:/usr/local/lib:/home/etl/dsspr.og/lib/.
但直接在命令运行[root@dmtest ~]$ echo $LD_.LIBRARY_.PATH    美容
输出却是空
这是怎么一.回事.啊,有高手帮下忙么,小弟新手。  谢谢先了啊.

[ 本帖..最后由 toniz 于 2009-8-28 09:13 编辑 ].

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线粉妮.
发帖
2012
C币
-235746
威望
342
贡献值
1
银元
-3
铜钱
4435
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[RedHat]
echo $PATH

离线zhao123.
发帖
2061
C币
-152305
威望
408
贡献值
1
银元
-2
铜钱
4662
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[RedHat]
.bash_profile里面添加echo $PATH
export PATH
echo $PATH

[root@dmtest ~]# sh .bash_profile
/usr/java/jdk1.6.0_14/bin:/usr/java/jdk1.6.0_14/jre/bin:/usr/kerberos/sbin:/usr/java/jdk1.6.0_14/bin:/usr/java/jdk1.6.0_14/jre/bin:/usr/java/jdk1.6.0_14/bin:/usr/kerberos/bin:/usr/java/jdk1.6.0_14/bin:/usr/java/jdk1.6.0_14/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/java/jdk1.6.0_14/bin:.:/home/etl/bin:/home/etl/dssprog/bin:.:/u01/app/oracle/product/11.2.0/db_1/bin:/usr/java/jdk1.6.0_14/bin:.:/usr/java/jdk1.6.0_14/bin:.:/home/db2inst1/sqllib/bin:/home/db2inst1/sqllib/adm:/home/db2inst1/sqllib/misc:/root/bin:/home/etl/dssprog/bin:.:/u01/app/oracle/product/11.2.0/db_1/bin
[root@dmtest ~]# echo $PATH
/usr/kerberos/sbin:/usr/java/jdk1.6.0_14/bin:/usr/java/jdk1.6.0_14/jre/bin:/usr/java/jdk1.6.0_14/bin:/usr/kerberos/bin:/usr/java/jdk1.6.0_14/bin:/usr/java/jdk1.6.0_14/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/java/jdk1.6.0_14/bin:.:/home/db2inst1/sqllib/bin:/home/db2inst1/sqllib/adm:/home/db2inst1/sqllib/misc:/home/etl/bin:/home/etl/dssprog/bin:.:/u01/app/oracle/product/11.2.0/db_1/bin:/usr/java/jdk1.6.0_14/bin:.

有值,不过不一样 闷

离线52niming.
发帖
2223
C币
-235325
威望
349
贡献值
1
银元
-3
铜钱
4874
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:[RedHat]
做开发的吗?
最好不要设置LD_LIBRARY_PATH变量,你可以在Makefile中用-L指定lib路径,或者将lib路径写入/ect/ld.so.conf中;
如果你非要设置LD_LIBRARY_PATH变量,请在/etc/bashrc文件中设置。

离线besthome.
发帖
2167
C币
-60450
威望
400
贡献值
1
银元
0
铜钱
4842
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:[RedHat]
先谢谢lyjinger  和www_xylove  
恩   我是做开发的
本来用ETL用户登陆的话,是可以正常运行使用DBI库的perl代码的。
但由于用TOMCAT的时候,调用CGI代码使用的是ROOT用户权限。所以就把ETL用户的环境变量设置照着抄了一份给ROOT用户。现在一跑perl代码就报:
Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: 鏃犳硶鎵撳紑鍏变韩瀵硅薄鏂囦欢: 娌℃夐偅涓?枃浠舵栫at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
at mkta.pl line 15

然后我对比了一下ETL和ROOT的环境变量,发现上面的问题。

离线cnyunxi.
发帖
2005
C币
-199214
威望
392
贡献值
1
银元
-3
铜钱
4545
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:[RedHat]
谢谢 lyjinger  
问题已经搞定
因为/etc/bashrc这个文件看起来没有导出export的内容
所以我是在/root下面的.bashrc加的。

离线aqxsj.
发帖
2138
C币
-152161
威望
419
贡献值
1
银元
0
铜钱
4863
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:[RedHat]
我有个有个疑惑
sh和. ./.bash_profile效果相同吗?
[monitor@host-lfs ~]$ sh .bash_profile
[monitor@host-lfs ~]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[monitor@host-lfs ~]$ . .bash_profile
[monitor@host-lfs ~]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/monitor/bin
我这里的结果是不同的

在.bash_profile重新配置的的环境变量,使用source .bash_profile 来生效

发帖
2043
C币
-235292
威望
375
贡献值
1
银元
-3
铜钱
4576
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
Re:[RedHat]
是呀  为什么运行和导出的不一样呢?
我这边是在.bash_profile文件中的
export LD_LIBRARY_PATH下面加个echo $LD_LIBRARY_PATH
然后用SH执行一下,这时候是可以看到
home/db2inst1/sqllib/lib32:/home/db2inst1/sqllib/lib:/u01/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/lib:/usr/local/lib:/home/etl/dssprog/lib/
但是等他运行完之后,我再在命令符下打echo $LD_LIBRARY_PATH,却是什么也没有。
后来我/root下面的.bashrc里面直接填入上面的打印出来的路径,之后就可以了。
很是迷茫啊~~~~

离线klyxb.
发帖
2047
C币
-313895
威望
407
贡献值
1
银元
-1
铜钱
4726
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
Re:[RedHat]
用.执行一下
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个