在Mac上,我经常使用bash。对于我的环境设置我加入/usr/bin
并/usr/local/bin
成为$PATH
我通常做。
虽然我确实知道/usr/bin
和打算做什么/usr/local/bin
,但我很好奇,按照惯例,应该先走哪一个?并有特定原因吗?
类似的是/usr/lib
和/usr/local/lib
-希望的答案是相同或相似。
多一点-只是原始问题的扩展,您如何按照约定在$ PATH中订购以下内容,为什么?
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
/opt/local/bin
/opt/local/sbin
/usr/bin
是操作系统提供的二进制文件所在的位置。/usr/local/bin
用户提供的二进制文件所在的位置。当您在命令行上键入命令名称时,shell在$PATH
环境变量中包含的路径中按顺序搜索该命令。一个常见的模式是有/usr/local/bin
普瑞森/usr/bin
在$PATH
。这样,您就可以安装二进制的备用版本,并使其优雅地“覆盖”操作系统提供的二进制文件。而且操作系统更新不会破坏您用户安装的软件包。流行的Homebrew软件包管理器工具在OSX中特别使用了这种模式。
例如,在撰写本文时,OSX El Capitan提供了git版本2.5.4(在中/usr/bin
)。如果您想要更新的版本,则可以使用Homebrew安装git版本2.7.0(到/usr/local/bin
)。由于环境变量/usr/local/bin
早/usr/bin
于该$PATH
变量,因此当您git
在shell中发出命令时,将使用较新的Homebrew版本。
在运行OSX El Capitan(我碰巧有一个)的全新Mac上,/etc/paths
文件包含以下内容:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
产生以下$PATH
环境变量:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
与自制软件兼容。我建议坚持使用此OSX默认设置。如果您真的要包括/usr/local/sbin
(在上面的问题中列出),/usr/sbin
出于与上述类似的原因,我会在前面加上它。至于/opt/local/bin
和/opt/local/sbin
,我个人还没有发现需要将它们添加到路径中,但是/usr/local
由于/opt
传统上包含用户安装的二进制文件,因此它们似乎和它们的类似物可能位于相似的位置。
注:同样的解释适用于/usr/lib
对/usr/local/lib
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句