Доступ к среде Unix из приложений emacs и Cocoa в OS X Mountain Lion

1044
FCo

Я использую emacs на своем Mac, я устанавливаю версию emacs для Какао, используя homebrew. Одна проблема заключается в том, что для того, чтобы увидеть «Unix путь» Я должен был повторить свой путь от .profileк.MacOSX/environment.plist

Я делаю это с этим в моем .profile:

# PATH for emacs and cocoa apps /etc/profile begin if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` defaults write $HOME/.MacOSX/environment PATH "$PATH" fi 

И раньше это работало, но оно перестало работать, когда я установил Mountain Lion. Я не могу найти руководство, которое говорит, что они изменили его в этой версии.

Кто-нибудь знает, как увидеть путь unix из приложений какао на Mountain Lion?

5
Хм, IIRC они давно планировали отказаться от "environment.plist". Вместо этого вы можете использовать `/ etc / launchd.conf` или` launchctl setenv`, но ваш пробег может отличаться. Я проверю это завтра. slhck 12 лет назад 1
о, спасибо! Очевидно, файл .MacOSX / environment устарел (было бы неплохо, если бы у Apple была хорошая статья, объясняющая ситуацию и что вместо этого делать). Я заменил код в .profile на `launchctl setenv PATH $ PATH`, и он работает, но мне нужно перезагрузить компьютер для любых изменений в пути. FCo 12 лет назад 0

1 ответ на вопрос

4
slhck

Чтобы формально ответить на этот вопрос: возможно, .MacOSX/environment.plistэто больше не работает (?) Или, по крайней мере, ненадежно. Он никогда не работал для приложений, запущенных Spotlight. Хотя это задокументировано: Рекомендации по настройке среды выполнения: переменные среды

Альтернативой этому является использование launchctl, которое сделает переменные среды доступными для приложений с графическим интерфейсом. Например, это копирует вашу оболочку PATHв среду:

launchctl setenv PATH $PATH 

При любых изменениях $PATHвам придется перезапустить уязвимые приложения. Вам не нужно перезагружаться, если вы используете вышеуказанный синтаксис. Однако, если вы измените /etc/launchd.conf, вам нужно будет перезагрузить компьютер. Смотрите также: Установка переменных среды в OS X? - Переполнение стека

Это действительно не работает! Я не понимаю Иногда это происходит, а иногда нет. `launchctl getenv PATH` из оболочки emacs возвращает правильную вещь, но` echo $ PATH` содержит неверный путь !. На данный момент я делаю `(setenv" PATH "(команда командной строки для запуска" launchctl getenv PATH "))" в начале файла `.emacs`, но это хак! FCo 12 лет назад 1
Гектометр Я никогда не использовал Emacs Cocoa, и для меня версия `.MacOSX` всегда работала, по крайней мере, до 10.6 (а потом она мне не понадобилась). Может быть, вы можете обновить свой вопрос с вашим текущим статусом - особенно с emacs - и другие могут посмотреть? slhck 12 лет назад 0