PATH可执行程序的查找路径

查看当前环境变量:

echo$PATH

设置:

方式一:exportPATH=PATH:/XXX并且退出当前终端后就失效

技巧二:更改~/.bashrc或~/.bash_profile或系统级别的/etc/profile

linux路径变量_linux系统环境变量路径_linux环境变量路径

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

linux环境变量路径_linux路径变量_linux系统环境变量路径

?配置以后最好运行一下:ldconfig

在终端里运行前面这行命令,再运行这个可执行文件,假如运行正常就说明是这个问题。

接出来的问题是:以上做法,只是临时设置变量LD_LIBRARY_PATH,上次开机,一切设置将不复存在;怎样把这个值持续讲到LD_LIBRARY_PATH里呢?

我们可以在~/.bashrc或则~/.bash_profile中加入export句子,后者在每次登入和每次打开都读取一次,前者只在登录时读取一次。我的习惯是加到~/.bashrc中,在该文件的未尾,可采用如下句子来使设置生效:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

linux环境变量路径_linux路径变量_linux系统环境变量路径

更改完后,记得关闭当前终端并重新打开一个新的终端,因而使前面的配置生效。也可以不关掉终端再打开终端,使用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

linux系统环境变量路径_linux路径变量_linux环境变量路径

export LD_LIBRARY_PATH

LD_LIBRARY_PATH这个环境变量是你们最为熟悉的,它告诉loader:在什么目录中可以找到共享库。可以设置多个搜索目录,这种目录之间用逗号分隔开。

在linux下,还提供了另外一种方法来完成同样的功能,你可以把这种目录加到/etc/ld.so.conf中,之后调用ldconfig。

其实,这是系统范围内全局有效的linux系统环境变量路径,而环境变量只对当前shell有效。依照惯例,除非你用上述方法指明,

loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找可执行文件一样。

本文原创地址://gulass.cn/rhszhzkpylhj.html编辑:刘遄,审核员:暂无