如果使用源码包安装的软件,在安装完成后一般情况下要设置该软件命令执行的路径,那就是 PATH 变量。如何来设置 PAHT变量呢?我们又三种方法实现
例如:压力测试工具sysbench的命令目录为:/usr/local/sysbench/bin,想要将sysbench工具加入到系统环境变量里,使在root用户下,可以直接执行sysbench命令。
1.直接使用 export 命令
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# export PATH=$PATH:/usr/local/sysbench/bin
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin
注意: 直接使用 export 设置的变量都是临时变量,也就是说退出当前的 shell ,为该变量定义的值便不会生效了。如何能让我们定义的变量永久生效呢?那就看我们的第二种定义的方式
2. 修改 /etc/profile
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# vi /etc/profile
export PATH=$PATH:/usr/local/sysbench/bin # 在配置文件中加入此行配置
需要注意的是:修改完这个文件必须要使用 以下命令在不用重启系统的情况下使修改的内容生效
# source /etc/profile
或者是:
# . /etc/profile
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin
# 配置已经生效
注意:修改 /etc/profile下虽然可以使环境变量永久生效,但在系统重启时,可能不再读取/etc/profile文件中的内容,需要在执行 "source /etc/profile"之后才能使环境变量生效;为了避免重启后环境变量不生效的问题,也可以在/etc/profile.d/目录下简历一个path.sh的文件,将export命令写入其中,这样每次系统重启时,都会自动读取文件内容,使环境变量生效。
3. 修改 .bashrc 文件是在当前用户 shell 下生效(普通用户)
# vi /root/.bashrc 在里面加入:
export PATH=$PATH:/usr/local/mysql/bin
修改这个文件之后同样也需要使用 source 或者是 . 使配置文件生效(或者退出重新登陆即可生效)。
再来使用 echo $PATH看下变量是否生效
# echo $PATH
以上是将一个工具命令加入到root用户下的环境变量中,对于非root用户,一般采用第三种方法,仅对当前用户生效。
面简要说一下Linux下非root用户安装软件的一般流程:
1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码。
2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可
3. 切换到解压后的目录,运行 ./configure。其选项可以通过 ./configure –help来获取,非root用户下最重要的应该是定义安装目录,即应该定义 ./configure –prefix=/path/to/bin, 对于一些依赖库,可能还需要使用 ./configure –prefix=xxx –with-xx-dir=xxx这种形式。
4. 接着是编译源代码和安装软件: make && make install。这两条命令可以分开来用,因为编译的时候可以指定参数 -j来并行编译,这样能够加快编译进度。。
5. 更新path路径。使用export PATH=/path/to/bin:$PATH,这句话在shell窗口运行只在本次会话中有效,可以将其写到.bashrc或者.bash_profile里面使其对当前用户有效。
6.如果安装的是动态链接库,则需要更新动态链接库路径: export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH,同样是export命令,最好将其写在.bashrc这类文件下面以便登陆的时候自动调用。
示例可参考: http://www.tlanyan.me/install-apache2-php-mysql-with-none-root/