Mac OS X Lion больше не распознает environment.plist? - PullRequest
29 голосов
/ 21 июля 2011

Сегодня только что установили 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>

Ответы [ 10 ]

15 голосов
/ 22 июля 2011

Я столкнулся с той же проблемой сегодня.Я позвонил в службу поддержки Apple, и после того, как меня перевели к старшему советнику, а затем к ее руководителю, мне сказали, что они больше не поддерживают environment.plist и что официально не поддерживается метод определения переменных среды в Mac OS 10.7.

14 голосов
/ 21 июля 2011

Вместо этого используйте ~/.launchd.conf (см. man launchctl).

Подробнее см. .

10 голосов
/ 08 декабря 2011

Независимо от того, поддерживает ли Apple официально этот механизм, текущая техническая заметка Технические вопросы и ответы QA1067 все еще точна.Важное предостережение, однако, отсутствует: список свойств должен быть в двоичном формате.Xcode 4, когда используется для создания новых списков свойств, испускает файлы в текстовом формате (независимо от типа, указанного в File Inspector).Поэтому вам нужно либо конвертировать сохраненный файл, используя 'plutil':

plutil -convert binary1 environment.plist

, либо использовать "по умолчанию", чтобы записать новый файл шаблона, который вы можете редактировать в Xcode (который будет соответствовать исходному двоичному форматупри сохранении):

defaults write defaults write $HOME/.MacOSX/environment Root "1"
1 голос
/ 12 октября 2012

Я только что сгорел от чего-то похожего в Snow Leopard, а затем выяснил, в чем проблема.

Я делал:

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

1 голос
/ 09 апреля 2012

Сделайте это как brew и создайте символическую ссылку в / usr / local / bin /. Для меня идеально работает и является IMO более unix-подобным решением, где все в файле.

1 голос
/ 02 августа 2011

Странно, потому что здесь это работает безупречно.Мне пришлось настроить среду JRI для доступа к внутренним компонентам R из приложений Java, и обновления .profile было недостаточно, чтобы NetBeans перехватывал все переменные env.

Создание файла environment.plist помогло.1003 *

Для справки это содержимое файла:

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>
0 голосов
/ 14 апреля 2018

Я недавно упаковал инструменты, используемые на этапе запуска сценариев 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.

0 голосов
/ 03 сентября 2012

[[Я копирую этот мой ответ сюда, потому что он может быть кому-то полезен:]]

Благодаря моим собственным исследованиям, я теперь знаю, как устанавливать переменные среды 7 из 8 различных способов. Я пытался донести envar до приложения, которое я разрабатываю под XCode. Я устанавливаю «трассирующие» envars, используя эти разные методы, чтобы сказать мне, какие из них попадают в сферу моего приложения. Из ниже вы можете видеть, что редактирование "схемы" в XCode для добавления аргументов работает, как и "putenv". Что не устанавливало его в этой области: ~ / .MACOS / environment.plist, специфичный для приложения plist, .profile и добавление фазы сборки для запуска пользовательского скрипта (я нашел другой способ в Xcode [как минимум] установить один, но забыл, что я назвал трассировщиком, и не могу найти его сейчас, может быть, это на другой машине ....)

GPU_DUMP_DEVICE_KERNEL равно 3

GPU_DUMP_TRK_ENVPLIST равен (null)

GPU_DUMP_TRK_APPPLIST равен (null)

GPU_DUMP_TRK_DOTPROFILE равен (null)

GPU_DUMP_TRK_RUNSCRIPT равен (null)

GPU_DUMP_TRK_SCHARGS равно 1

GPU_DUMP_TRK_PUTENV равно 1

... с другой стороны, если я зайду в Терминал и скажу «установить», кажется, что он получает только один из .profile (я бы подумал, что он также подберет environment.plist, и Я уверен, что когда-то я увидел второй envar трассировщика в Терминале, так что с тех пор, вероятно, что-то пошло не так; долгий день ....)

0 голосов
/ 18 июля 2012

По умолчанию Mac OS X (10.7.4 и выше) больше не поддерживает его. Смотри http://support.apple.com/kb/TS4267

0 голосов
/ 20 января 2012

Вы можете редактировать ~/.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

для изменения порядка системных переменных.

...