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

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

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

答案1

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

当 Unix 上的某些东西寻找使用相对路径(例如:clang而不是/usr/bin/clang)的应用程序时,PATH会按:字符进行拆分,然后按顺序搜索。

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

从技术上讲,每个过程都有自己的方式来执行此操作 - 没有什么强迫它们遵循使用惯例$PATH,但是这种方式已经持续了很长时间,几乎所有事情都是这样做的。

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

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

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

答案2

如果$PATH出于某种原因无法进行修改,您可以创建别名调用相应目录中的可执行文件。

答案3

PATH变量定义您的命令的位置。

您可以在自己的文件中修改此变量/etc/paths。您应该/usr/bin在其他人之前验证这一点。

相关内容