Я хотел бы добавить к глобальной переменной среды PATH в OS X, чтобы все пользовательские оболочки и приложения с графическим интерфейсом получали одинаковую среду PATH.
Я знаю, что могу добавить путь в сценарии запуска оболочки, но эти настройки не наследуются приложениями с графическим интерфейсом.
Единственный способ, который я нашел, - переопределить переменную среды PATH в /etc/launchd.conf :
setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path
Я не мог придумать, как на самом деле присоединиться к PATH launchd.conf
.
Я немного обеспокоен этим методом, но пока это единственное, что работает. Есть ли способ лучше?
Ответы:
Информация о графическом интерфейсе Palmer верна, но есть более удобный способ изменить путь, видимый оболочкой. Как сказал mediaslave , вы можете редактировать
/etc/paths
, но, что еще лучше, вы можете удалить текстовый файл, в/etc/paths.d/
котором есть путь, и все оболочки будут правильно его строить.Например, в моей системе:
источник
X11
(менее болезненно, чем выйти из системы). Я не пробовал этоTerminal
.$PATH
./etc/launchd.conf
launchd.conf
Файл ** единственное полное решение , которое будет работать как для командной строки и приложения с графическим интерфейсом на OS X v10.8 (Mountain Lion) и v10.9 (Mavericks), тот , который будет работать с графическим интерфейсом и консольными приложениями для всех пользователей ,Добавлять
В приведенном выше примере я добавил значения
/usr/local/bin
по умолчанию для среды PATH.Помните, что этот файл не является сценарием, и у вас нет возможности использовать замены. Кроме того, чтобы их применить, вам нужно перезагрузить компьютер.
Помните, что все остальные являются только частичными решениями:
environment.plist
не работает для приложений, запущенных через Spotlight./etc/paths
- только для консоли/etc/csh.cshrc
или/etc/bashrc
- только для некоторых снарядовЭтот ответ основан на том же вопрос Установка переменных окружения на Mac OS X .
источник
/etc/launchd.conf
.Вы должны будете установить его на основе оболочки за оболочкой; Bash и csh-подобные оболочки не используют одни и те же файлы конфигурации и синтаксис для настройки PATH.
Попытка сделать это
launchctl
не будет работать, потому что переменные окружения устанавливаются при входе в систему; они не существуют в масштабе всей системы в Unix вне сеанса оболочки.Итак, вы хотите добавить
к
/etc/csh.cshrc
ик
/etc/bashrc
.Если вам нужны переменные среды в приложениях с графическим интерфейсом, это более сложно. Вы должны создать
.MacOSX/environment.plist
файл в домашнем каталоге каждого пользователя..MacOSX
Каталог, скорее всего , не существует по умолчанию, так что вам придется создать его.Формат файла выглядит так:
Больше на сайте
environment.plist
Apple .источник
~/.MacOSX/environment.plist
подход больше не поддерживается, и на уровне пользователя нет замены. Вы можете использовать/etc/launchd.conf
всю систему (и есть решение для каждого приложения).Вы можете редактировать свой глобальный путь, добавляя строки по
/etc/paths
одному пути на строку.sudo nano /etc/paths
должен доставить тебя туда.источник
Вы смотрели на справочную страницу для
path_helper
утилиты командной строки на OS X? Я ответил на несколько связанный вопрос о SO, который, я думаю, может оказаться полезным.источник
Я не уверен, что кто-нибудь освещал самый простой и элегантный способ. По крайней мере, в Mac OS X v10.6 (Snow Leopard).
Мессинг с
[/etc/|~/.]
из[profile|bashrc]
файлов может работать, но это несколько рубить./etc/paths.d/
Каталог путь:Создайте новый файл с именем
*name*
(только не называйте его тем, что уже есть)/etc/paths.d/
с путем на строку:Затем добавьте
на
profile
илиbashrc
, и вы должны быть хорошими, чтобы идти.источник
*name*
? Или ты имеешь ввиду простоname
?Я не уверен, что launchd принимает это, но попробуйте:
источник
Я не уверен, почему вы используете,
/etc/launchd.conf
а не/etc/profile
- но я не эксперт в Mac OS X - я верю вам в то, что я уверен, что это работает, ноlaunchd
реализация / замена Mac OS X дляinit
- Mac OS Х смущает меня.Во всяком случае,
setenv PATH "$PATH:/more/paths:/and/more/paths"
будет работать (tcsh), и эквивалент оболочки Bournexport PATH="$PATH:/more/paths:/and/more/paths"
- я понятия не имею, какlaunchd
это связано с конкретной оболочкой.Я думаю, что задал больше вопросов, чем ответил =)
источник