为什么开源外围包安装指导都是按照到/usr/local/目录下,/usr/local与/usr的区别
很多应用都安装在/usr/local下面,那么,这些应用为什么选择这个目录呢?Automake工具定义了下面的一组变量:
Directory variable Default value prefix /usr/local exec_prefix ${prefix} bindir ${exec_prefix}/bin libdir ${exec_prefix}/lib … includedir ${prefix}/include datarootdir ${prefix}/share datadir ${datarootdir} mandir ${datarootdir}/man infodir ${datarootdir}/info docdir ${datarootdir}/doc/${PACKAGE}
而GUN下面绝大部分应用的编译系统都是用automake。所以很多很多应用都安装在了/usr/local/目录下。
另外,需要注意usr 指 Unix System Resource,而不是User。通常/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。
如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
这里/usr/local/bin优先于/usr/bin。