PATH可执行程序的查找路径
查看当前环境变量:
echo$PATH
设置:
方式一:exportPATH=PATH:/XXX并且退出当前终端后就失效
技巧二:更改~/.bashrc或~/.bash_profile或系统级别的/etc/profile
1.在其中添加诸如exportPATH=/opt/ActivePython/bin:$PATH
2.source.bashrc(Source合称为“点”,也就是一个点符号(.)。
source一般用于重新执行刚更改的初始化文件,使之立刻生效,而毋须注销并重新登陆)
LD_LIBRARY_PATH动态库的查找路径
我们在ubuntu图形界面下用eclipse写了一个动态库,到centos下调用时出现错误,
error while loading shared libraries: libmysqlclientso.so.0: cannot open shared object file: No such file or directory
以为没装mysql-client,由于ubuntu下叫这个linux 电子书,然而centos下直接就叫mysql,服务器版本叫mysql-server,查找了一下libmysqlclient.so
find/-namelibmysqlclient.so,果然发觉不同:
这是由于没有把动态链接库的安装路径(比如说是/usr/local/lib)放在变量LD_LIBRARY_PATH里。
这时,可以用命令export将至时测试确认是不是这个问题:
命令行:exportLD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
或则exportLD_LIBRARY_PATH=/home/other/test/lib:$LD_LIBRARY_PATH
?配置以后最好运行一下:ldconfig
在终端里运行前面这行命令,再运行这个可执行文件,假如运行正常就说明是这个问题。
接出来的问题是:以上做法,只是临时设置变量LD_LIBRARY_PATH,上次开机,一切设置将不复存在;怎样把这个值持续讲到LD_LIBRARY_PATH里呢?
我们可以在~/.bashrc或则~/.bash_profile中加入export句子,后者在每次登入和每次打开都读取一次,前者只在登录时读取一次。我的习惯是加到~/.bashrc中,在该文件的未尾,可采用如下句子来使设置生效:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
更改完后,记得关闭当前终端并重新打开一个新的终端,因而使前面的配置生效。也可以不关掉终端再打开终端,使用source~/.bashrc或source~/.bash_profile使前面的配置生效。
[source:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有句子linux系统环境变量路径,一般用于重新执行刚更改的初始化文件,使之立刻生效,而毋须注销并重新登陆]
不过这个环境变量是基于shell的如何安装LINUX,也就是说只有在当前设置了的shell里就会有作用,因而每次打开新的shell运行程序不停地设置LD_LIBRARY_PATH,
是一件十分麻烦的事情,所以我们才会想有不有哪些一劳永逸地方式,促使设置以后就不用再去设置了?答案是肯定的,
即在~/目录下打开.bash_profile文件,设置环境变量如下:
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
LD_LIBRARY_PATH这个环境变量是你们最为熟悉的,它告诉loader:在什么目录中可以找到共享库。可以设置多个搜索目录,这种目录之间用逗号分隔开。
在linux下,还提供了另外一种方法来完成同样的功能,你可以把这种目录加到/etc/ld.so.conf中,之后调用ldconfig。
其实,这是系统范围内全局有效的linux系统环境变量路径,而环境变量只对当前shell有效。依照惯例,除非你用上述方法指明,
loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找可执行文件一样。
本文原创地址://lrxjmw.cn/rhszhzkpylhj.html编辑:刘遄,审核员:暂无