Как установить $PATH, используемый приложениями в OS X

StackOverflow https://stackoverflow.com/questions/460835

Вопрос

Я использую ant для создания своего проекта и использую исполняемый файл «svnversion», чтобы вставить идентификатор версии в мои источники для удобного отслеживания версий.

Запуск этого файла ant из командной строки работает, я установил $PATH в .profile, чтобы включить путь к svnversion, и он работает нормально.

Теперь я пытаюсь запустить этот же файл ant изнутри Eclipse, но это не работает - PATH в eclipse установлен иначе, чем PATH оболочки, я подозреваю, что это должно быть установлено где-то в списке, но я не не знаю где.

Это было полезно?

Решение

Правильно - это в файле plist

~/.MacOSX/environment.plist

Этот файл фактически содержит пары ключ-значение для любых переменных среды, которые вы хотите установить, для всего сеанса входа в систему. В отличие от .profile / .cshrc и т. Д., Он доступен для программ с графическим интерфейсом. К сожалению, вы не можете получить доступ к другим переменным среды (например, вы не можете использовать $ HOME) или использовать любые другие программные конструкции здесь.

Обновление : обратите внимание, что это больше не поддерживается в OS X 10.8 Mountain Lion, увы.

Другие советы

В 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top