Ответы:
/etc/launchd.conf
больше не поддерживается в 10.10. Смотрите man launchctl
:
Файл /etc/launchd.conf больше не используется для подкоманд, запускаемых во время ранней загрузки; эта функциональность была удалена из соображений безопасности.
Теперь вы можете, например, сохранить этот лист как ~/Library/LaunchAgents/my.startup.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.startup</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>launchctl setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Команда launchctl setenv
запускается от имени пользователя, поэтому она применяется только к процессам, запущенным в пользовательском домене.
Этот метод не применяется к приложениям, которые открываются при входе в систему, если установлен флажок «Открывать окна при повторном входе в систему».
В версии 10.9 и более ранних, например, вы можете запустить
echo setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin|sudo tee -a /etc/launchd.conf
и затем перезапустите, чтобы применить изменения.
/etc/paths
и /etc/paths.d/
применять только (или в основном) к оболочкам. Линии /etc/paths
и /etc/paths.d/*
добавляются к пути с помощью path_helper , которая запускается из /etc/profile
, /etc/zshenv
, и /etc/csh.login
. Я не знаю никаких программ, кроме оболочек, которые рассматривали бы /etc/paths
или /etc/paths.d/
.
~/.MacOSX/environment.plist
перестал работать в 10.8.
/etc/launchd.conf
был удален в 10.10.
launchctl setenv
. launchctl setenv
никогда не влиял на существующие процессы.
Есть гораздо более простой способ. Поместите текстовый файл в папку /etc/paths.d/
. В этом текстовом файле введите желаемый путь и символ новой строки. Лучший способ - создать новый файл для каждого пути.
В моей системе есть файл MySQL с текстом «/ usr / local / mysql / bin» и переводом строки.
Вы можете установить переменные среды в файле /etc/launchd-user.conf
...
В Mavericks мне удалось настроить переменную среды в файле с помощью строки:
setenv TEST test
После новой загрузки $TEST
из /etc/launchd-user.conf устанавливается.
редактировать
Возможно, синтаксис файла в /etc/launchd.conf недействителен. Можете ли вы опубликовать содержимое этого файла для проверки?
Из того, что я вижу, установка переменной PATH в /etc/launchd.conf работает нормально. Однако launchd
не выполняет никаких расширений параметров . Поэтому, если у вас есть такая запись setenv PATH $PATH:/usr/local/bin
, ваш результирующий путь будет установлен на « $PATH:/usr/local/bin
» (примечание: не значение PATH, а текст «$ PATH»)
в моей установке Mavericks, добавление «setenv PATH blablabla» в /etc/launchd.conf не работало после перезагрузки
поэтому я добавил свой новый путь в конец / etc / paths, который сработал.
/etc/paths
содержит все , что я хочу, и все же Sublime по-прежнему видит только оригинальный путь. Если я запускаю его из терминала, он работает.
Я обнаружил, что setenv PATH по-прежнему работает для меня в терминале и приложениях, но не работает в сценариях оболочки, запускаемых непосредственно с помощью нажатия или «Открыть с помощью» в терминале, скажем, из Finder. Это очень странно Другие переменные среды, установленные в /etc/launchd.conf
работе.
Чтобы исправить это для сценариев оболочки, запускаемых напрямую, я продублировал настройку PATH в ~/.bash_profile
.
Редактирование /etc/paths.d
или использование .bash_profile
не работало для меня, однако, как это было предложено кем-то другим (я действительно пришел сюда, чтобы выразить свое мнение, но я не смог найти его снова ?!), я отредактировал, /etc/paths
который работает для меня
В моем случае я добавил android-tool adb
и android
команды терминала с указанием их путей sdk (в adb
настоящее время перемещен в другой каталог), которые выглядят как
/usr/local/bin
...
/Applications/adt-bundle-mac/sdk/platform-tools //new entries
/Applications/adt-bundle-mac/sdk/tools
SWEET, добавление этого XML в ~ / Library / LaunchAgents / setenv.SVN.plist позволило BBEdit использовать двоичные файлы Subversion, которые я установил в / opt.
<clip>
<string>launchctl setenv PATH /opt/subversion/bin:$PATH</string>
<clip>
Просто добавьте путь 'bin' (путь, который вы хотите добавить) к файлу / etc / paths - перезагрузите компьютер или перезапустите !!!
sudo vi /etc/paths
(create a file (paths file) if it does't exist, I am using 'vi' editor, you can use your own as super user )
then, add your bin directory path like below
/usr/local/mysql/bin
/usr/local/apache-ant-1.9.3/bin
/usr/local/gradle-1.11/bin
сохраните файл и перезапустите ... надеюсь, это поможет