Я перепробовал все методы, о которых я слышал, для установки переменных среды в OS X 10.8, но ни один из них не работает
Для тестирования запустите скрипт bash из приложения с графическим интерфейсом, такого как Eclipse или IntelliJ IDEA.
#!/bin/bash
set|grep PATH
Вещи, которые я проверял и которые не работают даже после перезагрузки:
/etc/paths
и/etc/paths.d/something
/etc/launchd.conf
~/.bash_profile
~/.MacOSX/environment.plist
(бинарный лист сделан в соответствии с рекомендациями)- запуск
launchctl setenv PATH $PATH
из командной строки должен был обновить PATH для приложений с графическим интерфейсом, по крайней мере, для текущего сеанса. Угадай, что, без изменений.
Кажется, что PATH всегда PATH=/usr/bin:/bin:/usr/sbin:/sbin
для приложений с графическим интерфейсом.
Ответы:
С Mountain Lion
/etc/launchd.conf
вы должны установить путь к приложениям с графическим интерфейсом. Помните, что это не файл сценария; он поддерживает толькоlaunchctl
команды, поэтому вы должны написать что-то вроде:Также обратите внимание, что он не поддерживает подстановку переменных среды оболочки (например
$PATH
), поэтому вам придется указать каждый путь, который вы хотите включить. Это хорошая идея, чтобы сохранить оригинальные пути, которые вы упомянули (/usr/bin:/bin:/usr/sbin:/sbin
).Вам нужно будет перезагрузиться после изменения (или создания) файла, чтобы изменения вступили в силу.
источник
-bash: setenv: command not found
setenv
этоlaunchctl
команда, поэтому вы используете ее какlaunchctl setenv
.Это работает, если вы вызываете приложение с графическим интерфейсом из терминала:
Не очень приятно или удобно, но это делает работу, если это необходимо.
источник
Я приготовил другое решение, вдохновленное патриксом , которое, надеюсь, немного менее болезненно. Откройте
Automator
, выберите приложение в качестве цели и выберитеExecute Shell script
(или как его там называют, на немецком языке это «Shell-Skript ausführen», как видно выше) в качестве действия. В сценарии просто введитеЗатем сохраните все это, где вы хотите, и если вам нужно запустить YourApplicationHere , откройте вместо этого созданное «приложение автоматизатора».
Я проверил это
Terminal
как YourApplicationHere , и увидел,launchctl export
что FOO действительно настроен на bar . Я надеюсь, что это работает и для других.Наконец, если вы используете это решение для своих переменных среды, вместо того, чтобы набирать
launchctl
материал в сценарии оболочки, вы можете просто вызвать/Users/Shared/conflaunchd.sh
(который вы должны сначала составить вместе с файлом, описывающим переменные).источник
Предположительно,
launchctl
обеспечиваетPATH
GUI Apps. Чтобы установить путь к пути оболочки, добавьте следующее в rc-файл оболочки после установки пути:источник