Приложения, запущенные через Finder, похоже, не учитывают PATH, как указано в .bash_profile
. Поэтому, когда я пытаюсь запустить код из IDE (Intellij), у меня больше нет доступа к программам /usr/local/bin
, которые обычно добавляются к моему пути в Терминале.
Видимо .MacOSX/environment.plist
раньше был способ сделать это, но он больше не работает в Lion.
Как настроить PATH
приложения, запускаемые Finder?
$PATH
в том случае, если это имеет значение.)Ответы:
Если у вас 10,7, а не 10,8, решение ниже работает хорошо:
У меня была та же проблема с затмением, но теперь я добавил, например, следующее к своему,
.bash_profile
и тогда это сработало.Если вы хотите оставить исходный путь без изменений, используйте
вместо (или просто
launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)
).Примечание. Изменение PATH для launchctl не вступит в силу, пока Dock не будет «перезапущен». Новый процесс Dock автоматически запустится после того, как текущий будет убит командой:
источник
set|grep PATH
с них всегда вернетсяPATH=/usr/bin:/bin:/usr/sbin:/sbin
launchctl
:osascript -e 'tell app "Dock" to quit'
. Это, казалось, исправило это для меня.Чтобы ответить на ваш вопрос о вашей «новой» проблеме, я решил написать другой ответ - потому что это легче объяснить с помощью примеров.
Один из способов загрузки переменных среды при запуске выбранного вами инструмента (IDE) - это то, что это можно сделать с помощью eclipse - я думаю, что в вашем инструменте (IDE) должна быть похожая структура.
Как это можно сделать в Eclipse - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-environment-variables-set
(немного переписано о переменных окружения)
Создайте пустой текстовый файл с именем "eclipse.sh" в каталоге пакета приложений Eclipse.
/Applications/eclipse/Eclipse.app/Contents/MacOS
Откройте eclipse.sh в текстовом редакторе и введите следующее содержимое:
В Терминале установите исполняемый флаг сценария оболочки eclipse.sh, т.е.
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Откройте Eclipse.app Info.plist и измените значение ключа CFBundleExecutable с eclipse на eclipse.sh.
MacOS X не обнаруживает автоматически, что Info.plist Eclipse.app изменился. Поэтому вам необходимо принудительно обновить базу данных LaunchService в Терминале с помощью команды lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
При следующем запуске Eclipse.app из Dock или из Finder должны быть установлены переменные среды.
источник
На OS X 10.10 Yosemite я использовал эту команду:
Имейте в виду, что он устанавливает PATH launchtl для всех пользователей . Это хорошо сработало для моего варианта использования. Обратите внимание, что вам будет предложено перезагрузить компьютер, чтобы эффекты вступили в силу.
источник
sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
перезагрузить компьютер.environment.plist
в большинстве случаев.На Mountain Lion все
/etc/paths
и/etc/launchd.conf
редактирование не дает никакого эффекта!Форумы разработчиков Apple говорят:
Поэтому я непосредственно отредактировал приложение
Info.plist
(щелкните правой кнопкой мыши «AppName.app» (в данном случае SourceTree), а затем «Show package contents
»).и добавил новую пару ключ / dict под названием:
(см .: Документация по LaunchServicesKeys в Apple )
теперь приложение (в моем случае SourceTree) использует указанный путь и работает с git 1.9.3 :-)
PS: Конечно, вы должны настроить запись пути в соответствии с вашими потребностями.
источник
/etc/launchd.conf
любом случае. Предположительно, даже если правила не утверждают , что приложения должны использовать свои Info.plist файлы для путей, они могут по- прежнему использовать другие файлы -/etc/launchd.conf
,/etc/paths/
или/etc/paths.d/*
, или `~ / .MacOSX / environment.plist. Можно ли тогда сказать, что на практике пути для приложений с графическим интерфейсом в Mountain Lion могут быть заданы в любом из этих файлов?/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
как указано в другом ответе, после изменения plist и 2. добавить полный путь туда, вы не можете использовать существующий PATH, как в скриптах вашего профиля.lsregister
команду, как отмечает @JaakL.На Горного Льва (10.8.4)
$PATH
лечится как-то специально.launchctl setenv PATH /your/path:/here
не влияет на$PATH
экземпляры в Terminal.app или Emacs.app, которые впоследствии запускаются из Dock или из Finder (тогда какlaunchctl setenv SPONG foo
работает нормально). Также$HOME/.launchd.conf
не работает./etc/launchd.conf
это единственный способ, которым я нашел правильную установку PATH везде. К сожалению, нельзя использовать envars, такие как$HOME
там, поэтому все пользователи на моем ноутбуке имеют/Users/nb/bin
свои$PATH
. Это только я, поэтому мне все равно.источник
PATH
значение, которое вы установили, но: когда вы создаете новый терминал, он запускает оболочку входа в систему, которая - если вы используете bash - выполняет/etc/profile
, которая инициализируетсяPATH
значением, возвращаемым из/usr/libexec/path_helper
. Если вы выберете Shell> New Command… и запуститеenv
(не в оболочке), вы должны найтиPATH
значение, которое вы задали с помощью launchd.Попробуйте установить путь в ~ / .profile или ~ / .bash_profile или ~ / .zprofile (для zsh). Это работало для меня с VimR - оно не считывало PATH при запуске из док-станции, но работало при запуске из терминала. Кстати, я работал на OSX 10.11.
У меня недостаточно хороших советов для этого, чтобы дать вам отличное объяснение того, почему это работает, в Интернете есть множество объяснений о различных файлах конфигурации и их действиях: https://stackoverflow.com/questions/415403/ Что-разностное-между-Bashrc-баш-профили и охрана окружающей среды
Также см. Аналогичное обсуждение здесь: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ 24542893 # 24542893
источник
В Mac OS X 10.8.4, Mountain Lion, среда пути включает пути, перечисленные в этом файле:
Вы можете редактировать этот файл с помощью инструмента командной строки, например, с
vim
помощью следующей команды:источник