В настоящее время на моей машине с OSX установлены две версии одного и того же исполняемого файла: одна находится в usr/bin, а другая - в Macports. Когда я запускаю which
, терминал возвращает местоположение в версию usr/bin. Есть ли единый способ изменить установку по умолчанию, или у каждого приложения есть свой собственный параметр команды для этого?
3 ответа
Вам необходимо изменить переменную среды 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, который отвечает за пользовательский интерфейс и любое приложение, запускаемое из этого.
Таким образом, вы можете изменить это в своих скриптах инициализации оболочки (.bash_profile
, .bashrc
, .profile
и т.д.), Но это не сработает, если, например, вы запускаете vim или emacs как приложение с графическим интерфейсом.
Вы также можете изменить /etc/paths
или добавить файл в /etc/paths.d
, и это станет частью стандартной среды для всего, включая все приложения, запускаемые на Mac. (Вы должны выйти из системы и снова войти в нее, чтобы проникнуть во все части системы.)
Если по какой-либо причине изменение $PATH
невозможно, вы можете создать псевдоним, который вызывает исполняемый файл в соответствующем каталоге.
Переменная PATH
определяет, где находятся ваши команды.
Вы можете изменить эту переменную в вашем /etc/paths
.
Вы должны убедиться, что /usr/bin
стоит перед другими.