Как установить $PATH, используемый приложениями в OS X
-
19-08-2019 - |
Вопрос
Я использую ant для создания своего проекта и использую исполняемый файл «svnversion», чтобы вставить идентификатор версии в мои источники для удобного отслеживания версий.
Запуск этого файла ant из командной строки работает, я установил $PATH в .profile, чтобы включить путь к svnversion, и он работает нормально.
Теперь я пытаюсь запустить этот же файл ant изнутри Eclipse, но это не работает - PATH в eclipse установлен иначе, чем PATH оболочки, я подозреваю, что это должно быть установлено где-то в списке, но я не не знаю где.
Решение
Правильно - это в файле plist
~/.MacOSX/environment.plist
Этот файл фактически содержит пары ключ-значение для любых переменных среды, которые вы хотите установить, для всего сеанса входа в систему. В отличие от .profile / .cshrc и т. Д., Он доступен для программ с графическим интерфейсом. К сожалению, вы не можете получить доступ к другим переменным среды (например, вы не можете использовать $ HOME) или использовать любые другие программные конструкции здесь.
Обновление : обратите внимание, что это больше не поддерживается в OS X 10.8 Mountain Lion, увы.
Другие советы
Появился быстрый поиск на developer.apple.com Настройка переменных среды для пользовательских процессов . р>
В Mac OS X El Capitan (10.11.5) это работает для записей PATH для каждого пользователя (и других переменных среды, если на то пошло).
- создать файл
$HOME/.profile
- установите все переменные, связанные с PATH, в этом файле
(если вы используете bash), имейте свой
.bash_profile
источник этого файла и.bashrc
.Это должно быть все содержимое вашего.bash_profile
:# $HOME.bash_profile: source $HOME/.profile source $HOME/.bashrc
Насколько я могу судить, Mac OS не является источником .bash_profile
при входе в систему PATH
, предположительно потому, что это часто выполняется очень медленно (инициализация завершения bash и т. д.).Кажется, читается $HOME/.profile
.
Вам все еще нужен $HOME/.bash_profile
чтобы запустить bash для чтения $HOME/.bashrc
, чего в противном случае не было бы для интерактивных терминалов без входа в систему, таких как те, которые созданы Terminal.app
.