Las aplicaciones iniciadas a través de Finder parecen no respetar la RUTA tal como está establecida .bash_profile. Entonces, cuando intento ejecutar el código desde un IDE (Intellij), ya no tengo acceso a los programas /usr/local/bin, que normalmente se agregan a mi ruta en la Terminal.
Aparentemente .MacOSX/environment.plist solía ser la forma de hacerlo, pero ya no funciona en Lion.
¿Cómo puedo configurar las PATHaplicaciones iniciadas por Finder?

$PATHen caso de que lo que importa.)Respuestas:
Si tiene 10.7 y no 10.8, la solución a continuación funciona bien:
Tuve el mismo problema con eclipse, pero ahora agregué, por ejemplo, lo siguiente a mi
.bash_profiley luego funcionó.En caso de que desee dejar la ruta original intacta, use
en su lugar (o simplemente
launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)).Nota: Cambiar la ruta launchctl no tendrá efecto hasta que el Dock se "reinicie". Un nuevo proceso de Dock se iniciará automáticamente después de que se elimine el actual con el comando:
fuente
set|grep PATHde ellos siempre devolveráPATH=/usr/bin:/bin:/usr/sbin:/sbinlaunchctl:osascript -e 'tell app "Dock" to quit'. Eso pareció arreglarlo para mí.Para responder su pregunta a su "nuevo" problema, he decidido escribir otra respuesta, porque es más fácil de explicar con ejemplos.
Una forma de cargar las variables de entorno en el inicio de su herramienta (IDE) de elección es como se puede hacer con eclipse: creo que también debe haber una estructura similar en su herramienta (IDE).
Cómo se puede hacer en eclipse - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-environment-variables-set
(ligeramente reescrito sobre las variables de entorno)
Cree un archivo de texto vacío llamado "eclipse.sh" en el directorio del paquete de la aplicación Eclipse
/Applications/eclipse/Eclipse.app/Contents/MacOSAbra eclipse.sh en un editor de texto e ingrese los siguientes contenidos:
En la Terminal, configure el indicador ejecutable del script de shell eclipse.sh, es decir:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.shAbra Eclipse.app Info.plist y cambie el valor de la clave CFBundleExecutable de eclipse a eclipse.sh.
MacOS X no detecta automáticamente que la lista de información de Eclipse.app ha cambiado. Por lo tanto, debe forzar la actualización de la base de datos LaunchService en la Terminal mediante el comando lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.appLa próxima vez que inicie Eclipse.app desde el Dock o desde el Finder, se deben establecer las variables de entorno.
fuente
En OS X 10.10 Yosemite, utilicé este comando:
Tenga en cuenta que establece la ruta de lanzamiento para todos los usuarios . Esto funcionó bien para mi caso de uso. Tenga en cuenta que se le pedirá que reinicie su máquina para que los efectos se establezcan.
fuente
sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbinreiniciar.environment.plisten la mayoría de los casos.En Mountain Lion todo el
/etc/pathsy/etc/launchd.confla edición no tiene ningún efecto!Los foros de desarrolladores de Apple dicen:
Así que
Info.plistedité directamente la aplicación (haga clic derecho en "AppName.app" (en este caso SourceTree) y luego "Show package contents")y agregó un nuevo par clave / dict llamado:
(ver: LaunchServicesKeys Documentation en Apple )
ahora la aplicación (en mi caso SourceTree) usa la ruta dada y funciona con git 1.9.3 :-)
PD: Por supuesto, debe ajustar la entrada de ruta a sus necesidades de ruta específicas.
fuente
/etc/launchd.conftodos modos. Es de suponer que, incluso si las normas no establecen que las aplicaciones deben utilizar sus archivos Info.plist de caminos, aún podrían estar utilizando otros archivos -/etc/launchd.conf,/etc/paths/o/etc/paths.d/*, o '~ / .MacOSX / environment.plist. ¿Es seguro decir que, en la práctica , las rutas para aplicaciones GUI en Mountain Lion podrían establecerse en cualquiera de estos archivos?/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.appcomo se indica en otra respuesta, después de cambiar plist y 2. agregar la ruta completa allí, no puede usar la RUTA existente como en sus scripts de perfil.lsregistercomando, como lo señaló @JaakL.En Mountain Lion (10.8.4),
$PATHse trata especialmente de alguna manera.launchctl setenv PATH /your/path:/hereno tiene ningún efecto en las$PATHinstancias en Terminal.app o Emacs.app que se inician posteriormente desde el Dock o desde el Finder (aunquelaunchctl setenv SPONG foofunciona bien). Tampoco$HOME/.launchd.conffunciona./etc/launchd.confes la única forma en que he encontrado para configurar la RUTA correctamente en todas partes. Desafortunadamente, uno no puede usar envars como$HOMEallí, por lo que todos los usuarios de mi computadora portátil tienen/Users/nb/binsu$PATH. Solo soy yo, así que no me importa.fuente
PATHvalor que estableció, pero: cuando crea una nueva terminal, inicia un shell de inicio de sesión, que, si está utilizando bash, se ejecuta/etc/profile, que se inicializaPATHal valor devuelto/usr/libexec/path_helper. Si elige Shell> Nuevo comando ... y ejecutaenv(no en un shell), debería encontrar que esePATHes el valor que establece a través de launchd.Intente configurar la ruta en su ~ / .profile o ~ / .bash_profile o ~ / .zprofile (para zsh). Esto funcionó para mí con VimR: no estaba leyendo la RUTA cuando se lanzó desde el muelle, pero funcionó cuando se lanzó desde la terminal. Por cierto, estaba ejecutando OSX 10.11.
No tengo un buen manejo de esto para darle una gran explicación de por qué funciona, hay muchas explicaciones en línea sobre los diferentes archivos de configuración y lo que hacen: https://stackoverflow.com/questions/415403/ cuál es la diferencia entre bashrc-bash-profile-and-environment
Además, vea una discusión similar aquí: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ 24542893 # 24542893
fuente
En Mac OS X 10.8.4, Mountain Lion, el entorno de ruta incorpora las rutas enumeradas en este archivo:
Puede editar este archivo utilizando una herramienta de línea de comandos, como
vimel siguiente comando:fuente