Я использую Qt Creator с пользовательской системой сборки (ниндзя). Проблема в том, что переменная $PATH, переданная в IDE Qt Creator, абсолютно ванильна: /usr/bin:/bin:/usr/sbin:/sbin
.
Поэтому мне приходится писать bash -c '/path/to/ninja list of targets'
вместо ninja list of targets
или выполнять шаги сборки в терминале, а не в IDE.
Я перепробовал все известные рецепты для настройки $PATH.
- ~/.bash_profile и ~/.profile
- /и т.д./пути
- /etc/paths.d/*
- /etc/launchd.conf (
setenv PATH .....
) - ~/Библиотека/LaunchAgents/*.plist (
sh -c 'launchtcl setenv PATH $PATH:.....'
) - /Библиотека/LaunchAgents/*.plist
Идея использования агенов запуска описана в Ответ StackOverflow.
Ни один не работает! Любая произвольная переменная среды в моем пользовательском файле .plist устанавливается правильно, - любая, кроме PATH. (Я протестировал это просто: создал собственный шаг сборки echo xzxzxz=$XZXZXZ path=$PATH
, где xzxzxz также установлен в моем агенте запуска).
Интересно, что если я запускаю Qt Creator из сеанса bash ('/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &
), он получает правильный PATH, такой же, как и сам bash.
Также интересно, что PATH, назначенный агенту запуска, позже перезаписывается. Там я написал sh -c 'launchctl setenv PATH $PATH:/HELLOWORLD'
, но не вижу этого HELLOWORLD в echo $PATH
. Итак, есть состояние гонки, кто-то перестраивает PATH из /etc/paths и /etc/paths.d позже.
Таким образом:
- есть ли исчерпывающее и актуальное объяснение того, как настроить переменные среды, и в частности PATH, в OSX 10.10?
- почему ПУТЬ становится ванильным?
- как победить с Qt Creator?
login
, а затем запустить приложение из оболочки - или запустить что-то еще, чтобы извлечь путь из шелла при этом запускал. Это имеет nada отношение к Qt Creator. Вам нужно запустить оболочку, чтобы проанализировать ваши сценарии оболочки, чтобы извлечь из них PATH, в значительной степени. Этого не произойдет просто так. Неванильный путь может легко сделать вашу сессию неработоспособной. Это было бы плохо. - person Kuba hasn't forgotten Monica   schedule 18.06.2015