Відповіді:
/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
Команда RAN як користувач, так що це відноситься тільки до процесів , запущеним в домені користувача.
Цей метод не застосовується до програм, які повторно відкриваються під час входу, якщо встановлено прапорець "Повторно відкрити вікна при вході в систему".
Наприклад, у версії 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
не виконує . Тому, якщо у вас є запис типу , ваш результат буде встановлений на " " (зверніть увагу: не значення PATH, а текст "$ PATH")setenv PATH $PATH:/usr/local/bin
$PATH:/usr/local/bin
на моїй 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
що працює для мене
У моєму випадку я додав андроїд-інструмент adb
і android
до термінальних команд із вказівкою на їх шляхи sdk ( adb
перемістився в інший каталог сьогодні), які виглядають як
/usr/local/bin
...
/Applications/adt-bundle-mac/sdk/platform-tools //new entries
/Applications/adt-bundle-mac/sdk/tools
SWEET, додавши, що XML до ~ / Бібліотека / LaunchAgents / setenv.SVN.plist дозволив BBEdit використовувати бінарні файли субверсії, які я встановив у / 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
збережіть файл і перегляньте ... сподіваюся, це допоможе