如何更改 unix 可执行文件的默认版本?

nip*_*ese 6 unix which macos

我目前在我的 OSX 机器上安装了同一个可执行文件的两个版本:一个位于 usr/bin 中,另一个是 Macports 安装。当我运行时which,终端将位置返回到 usr/bin 版本。是否有统一的方法来更改默认安装,或者每个应用程序都有自己的命令选项吗?

Dan*_*man 8

您需要修改PATH环境变量。这是用于在 Unix 下搜索可执行文件的标准。

当 Unix 上的某些内容查找具有相对路径(例如:clang而不是/usr/bin/clang)的应用程序时,PATH将在:字符上拆分,然后按顺序搜索。

例如:如果您PATH是,/opt/local/bin:/bin:/usr/bin那么clang将寻找/opt/local/bin/clang,如果缺少/bin/clang,等等。

从技术上讲,每个进程都有自己的方式来做到这一点 - 没有什么强迫他们遵循 using 的约定$PATH,但这种方式已经足够长了,几乎所有东西都这样做。

另一个考虑是每个进程都有自己的环境 -PATH包含在其中的副本。这包括 launchd,它负责 UI 和从中启动的任何应用程序。

因此,您可以在您的 shell init 脚本(.bash_profile.bashrc.profile等)中修改它,但是如果您将 vim 或 emacs 作为 GUI 应用程序启动,那么这将不起作用。

您还可以修改/etc/paths或向 中添加文件/etc/paths.d,这将构成一切标准环境的一部分——包括在 Mac 上启动的每个应用程序。(不过,您需要注销并重新登录才能使其渗透到系统的每个部分。)