vieyahn2017 / shellv

shell command test and study
4 stars 1 forks source link

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

Open vieyahn2017 opened 5 years ago

vieyahn2017 commented 5 years ago

linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH) https://blog.csdn.net/faihung/article/details/56038870

vieyahn2017 commented 5 years ago

PATH: 可执行程序的查找路径 查看当前环境变量: echo $PATH 设置: 方法一:export PATH=PATH:/XXX 但是登出后就失效 方法二:修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile

  1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin:$PATH
  2. source .bashrc (Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
vieyahn2017 commented 5 years ago

LD_LIBRARY_PATH: 动态库的查找路径 设置: 方法一: export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是登出后就失效 方法二: 修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile

  1. 在其中添加例如export PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH
  2. source .bashrc (Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录) 方法三:这个没有修改LD_LIBRARY_PATH但是效果是一样的实现动态库的查找,
  3. /etc/ld.so.conf下面加一行/usr/local/mysql/lib
  4. 保存过后ldconfig一下(ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.) 方法三设置稍微麻烦,好处是比较不受用户的限制。
vieyahn2017 commented 5 years ago

例如: 对于用户production的LD_LIBRARY_PATH进行分析如下:

1、production@Africa:~> echo $LD_LIBRARY_PATH
/home/production/cpst/cptools/lib:/home/production/cpst/campost/lib:/home/production/tuxedo/lib:/home/production/tuxedo/jre/lib/amd64/server:/home/production/tuxedo/jre/jre/bin:/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib

2、查看.profile:

.profile中有: . ~/cpst/campost/config/setenv,说明用户启动是运行脚本setenv。

3、setenv中有:

export CAMPOST_HOME=$HOME/cpst/campost
export CPTOOLS_ROOT=$HOME/cpst/cptools
export LD_LIBRARY_PATH=$CPTOOLS_ROOT/lib:$CAMPOST_HOME/lib:$LD_LIBRARY_PATH

4、setenv中有$LD_LIBRARY_PATH,进root查看:

(1)Africa:~ # echo $LD_LIBRARY_PATH
/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib
(2)etc/profile中有:
export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH
(3)/etc/profile.d/oracle.sh中有:
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib