Только что установил Lion сегодня, и моя переменная env PATH больше не устанавливается ~ / .MacOSX / environment.plist. Что-то изменилось? Не могу найти никакой информации об этом или о том, как исправить. Есть идеи?
Вот содержимое 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>PATH</key>
<string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
Используйте вместо этого ~/.launchd.conf
(см. man launchctl
).
См. этот ответ для деталей.
Недавно я упаковал инструменты, используемые в фазе выполнения сценариев Xcode, и поместил их в $ HOME / bin. Переменная окружения PATH моей оболочки bash включала это, поэтому я предположил, что Xcode тоже.
Это никогда не работало, и я нашел такие проблемы, как здесь.
Я напечатал переменную PATH из скрипта (echo $ PATH), вызванного Xcode, чтобы увидеть, какая переменная PATH установлена.
К счастью, один из этих путей, /Applications/Xcode.app/Contents/Developer/usr/local/bin, никогда не использовался.
Здесь было мое решение. Я создал символическую ссылку из вышеуказанного каталога на $ HOME / bin.
Перейдите в /Applications/Xcode.app/Contents/Developer/usr/local и выполните sudo ln -s $ HOME / bin bin.
Мои инструменты теперь были доступны для платформы XCode.
По умолчанию Mac OS X (10.7.4 и выше) больше не поддерживает его. См. http://support.apple.com/kb/TS4267
. Вы можете отредактировать ~/.MacOSX/environment.plist
с помощью этого примера $PATH
:
defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"
Это перезапишет ваш ~/.MacOSX/environment.plist
или отредактировать этот файл:
/etc/paths
, чтобы изменить порядок системных переменных.
Независимо от того, поддерживает ли Apple этот механизм официально, текущая техническая заметка Техническая справка QA1067 все еще точна. Важное предостережение, однако, отсутствует: список свойств должен быть в двоичном формате. Xcode 4, когда используется для создания новых списков свойств, испускает файлы в текстовом формате (независимо от типа, указанного в File Inspector). Поэтому вам нужно либо преобразовать сохраненный файл, используя 'plutil':
plutil -convert binary1 environment.plist
, либо использовать "значения по умолчанию", чтобы записать новый файл шаблона, который вы можете редактировать в Xcode (который будет соответствовать исходному двоичному формату при сохранении):
defaults write defaults write $HOME/.MacOSX/environment Root "1"
Странно, потому что здесь это работает безупречно. Мне пришлось настроить среду JRI для доступа к внутренним объектам R из приложений Java, и обновления .profile было недостаточно, чтобы NetBeans перехватывал все переменные env.
Создание файла environment.plist помогло.
Для справки это содержимое файла:
Malessere:~ xxxxx$ cat .MacOSX/environment.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>DYLD_LIBRARY_PATH</key>
<string>/Users/xxxxx/lib/jri-2.13</string>
<key>R_HOME</key>
<string>/Library/Frameworks/R.framework/Resources</string>
</dict>
</plist>
Я только что сгорел от чего-то похожего в «Снежном барсе», а потом выяснил, в чем проблема.
Я делал :
$ cd
$ defaults write .MacOSX/environment FOO bar
... но оказывается, что это отличается от выполнения (в моем случае):
$ cd
$ defaults write /Users/ljnelson/.MacOSX/environment FOO bar
То есть «путь» (на самом деле это не путь) к вашему домену должен быть полным путем к файлу $HOME/.MacOSX/environment.plist
(без суффикса .plist
). Очевидно, что все остальное будет записывать переменные в другой домен (понятия не имею, куда он был помещен).
Итак, результат: всегда делай defaults write /full/path/to/your/.MacOSX/environment VARNAME value
; вообще не используйте ярлыки для первого аргумента подкоманды write
.