man path_helper
Эта штука сводила меня с ума. Я использую zsh и нашел его в /etc/zshenv.
# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
Я думаю, что path_helper(8) на самом деле имеет полезную цель. Это сводится на нет обычной ультра расплывчатой информацией о системном администраторе от Apple. ищите path_helper(8) в файле инициализации вашей оболочки, в /etc, даже если вы используете macports, как я. Это может помочь.
В противном случае вы можете попробовать установить среду в:
/etc/launchd.conf
Но, конечно, справочная страница не является окончательной. http://developer.apple.com — отличная документация, но обычно мне нужны лучшие справочные страницы, а не точная память места.
Наконец, вы можете установить их в окне входа в систему, которое гласит:
~/.MacOSX/environment.plist
Теперь мне кажется странным иметь несколько способов сделать это, но... черт возьми, это странно. Они сделали достойную замену инициализации, это должен быть один процесс, который будет управлять ими всеми, но нет, многие задания выполняются за его пределами. Удачи. Вы должны быть в состоянии получить $VAR в свой графический интерфейс, используя один из этих методов.
А, http://developer.apple.com/library/mac/#qa/qa1067/_index.html.
OSX имеет различные сеансы и домены. Если быть точным, то из
man launchctl
Сессии:
В настоящее время известны следующие типы сеансов: Aqua, LoginWindow, Background, StandardIO и System.
Домены:
Найдите файлы plist(5), оканчивающиеся на *.plist, в указанном домене. Допустимые домены включают «системный», «локальный», «сетевой» и «все».
Это имеет смысл, когда вы читаете это.
Фу. launchd всегда добирается до меня.
РЕДАКТИРОВАТЬ: https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x/277034#277034
Снова утверждает, что /etc/launchd.conf — это место, где файлы получают путь.
Так что я побежал
opensnoop -g -c -f /etc/launchd.conf
и открыл Терминал, итерм, сафари, брелок... нада. никто из них не открывал этот файл.
РЕДАКТИРОВАТЬ: Однако после просмотра видео в Google при запуске я побежал
launchctl export
который показал мне
PATH="/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;
TMPDIR="/var/folders/YH/YHFe3+5RHmuxft5hr1XZTk+++TI/-Tmp-/"; export TMPDIR;
SHELL="/opt/local/bin/zsh"; export SHELL;
HOME="/Users/kb"; export HOME;
USER="kb"; export USER;
LOGNAME="kb"; export LOGNAME;
DISPLAY="/tmp/launch-dcQkBh/org.x:0"; export DISPLAY;
SSH_AUTH_SOCK="/tmp/launch-czhyqj/Listeners"; export SSH_AUTH_SOCK;
Apple_PubSub_Socket_Render="/tmp/launch-TI7lbI/Render"; export Apple_PubSub_Socket_Render;
sudo launchctl export
который изменяет мой контекст на системный контекст вместо моего контекста Aqua в качестве пользователя, возвращенного
PATH="/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;
Таким образом, контекст действительно имеет значение, другими словами, как и сеанс, в котором выполняется команда.
Документация для этого инструмента, этой замены инициализации, самого важного демона в Apple, единственного демона, который управляет ими всеми, ужасна. Моча. Бедных.
person
chiggsy
schedule
21.07.2011