为什么开源外围包安装指导都是按照到/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。

原文地址:https://www.cnblogs.com/xingmuxin/p/9875335.html