Cómo configurar PATH para aplicaciones iniciadas por Finder

66

Las aplicaciones lanzadas a través del Finder parecen no respetar la RUTA establecida en .bash_profile . Entonces, cuando intento ejecutar código desde un IDE (Intellij) ya no tengo acceso a los programas en /usr/local/bin , que normalmente se agrega a mi ruta en la Terminal.

Aparentemente, .MacOSX/environment.plist solía ser la forma de hacer esto, pero ya no funciona en Lion.

¿Cómo puedo configurar el PATH para las aplicaciones iniciadas por el Finder?

    
pregunta Caffeine Coma 19.05.2012 - 13:10

7 respuestas

35

Si tiene 10.7 y no 10.8, la solución a continuación funciona bien:

Tuve el mismo problema con eclipse, pero ahora he agregado, p. lo siguiente a mi .bash_profile y luego funcionó.

export PATH=some_path:another_path
launchctl setenv PATH $PATH

En caso de que quiera dejar la ruta original intacta, use

p=$(launchctl getenv PATH)
launchctl setenv PATH /my/new/path:$p

en su lugar (o simplemente launchctl setenv PATH /my/new/path:$(launchctl getenv PATH) ).

Nota: El cambio de launchctl PATH 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:

killall Dock
    
respondido por el Rene Larsen 19.05.2012 - 13:54
19

Para responder su pregunta a su 'nuevo' problema, he decidido escribir otra respuesta, porque es más fácil de explicar con muestras.

Una forma de cargar las variables de entorno en el inicio de la herramienta (IDE) de su elección es que 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: enlace

(reescrito ligeramente sobre las variables de entorno)

Cree un archivo de texto vacío llamado "eclipse.sh" en el directorio del paquete de aplicaciones de Eclipse /Applications/eclipse/Eclipse.app/Contents/MacOS

Abra el eclipse.sh en un editor de texto e ingrese los siguientes contenidos:

#!/bin/sh

. ~/.bash_profile

logger "'dirname \"$0\"'/eclipse"

exec "'dirname \"$0\"'/eclipse" [email protected]

En la Terminal, establezca el indicador ejecutable del script de shell eclipse.sh, es decir:

chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh

Abra 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 haya cambiado. Por lo tanto, debe forzar la actualización de la base de datos LaunchService en el Terminal mediante el comando lsregister:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app

La próxima vez que inicie Eclipse.app desde el Dock o desde el Finder, se deben configurar las variables de entorno.

    
respondido por el Rene Larsen 20.05.2012 - 16:39
10

En Mountain Lion, ¡todas las ediciones /etc/paths y /etc/launchd.conf no tienen ningún efecto!

Los foros de desarrolladores de Apple dicen:

  

"Cambie la lista de información de .app para que contenga un" LSEnvironment "   diccionario con las variables de entorno que desee.

     

~ / .MacOSX / environment.plist ya no es compatible. "

Así que edité directamente la aplicación Info.plist (haga clic con el botón derecho en "AppName.app" (en este caso SourceTree) y luego " Show package contents ")

yagregóunanuevaclave/pardedictadollamada:

<key>LSEnvironment</key><dict><key>PATH</key><string>/Users/flori/.rvm/gems/ruby-1.9.3-p362/bin:/Users/flori/.rvm/gems/[email protected]/bin:/Users/flori/.rvm/rubies/ruby-1.9.3-p326/bin:/Users/flori/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:</string></dict>

(consulte: LaunchServicesKeys Documentation en Apple )

ahora la aplicación (en mi caso SourceTree) usa la ruta dada y trabaja con git 1.9.3 :-)

PS: Por supuesto, tiene que ajustar la entrada de Ruta a sus necesidades de ruta específicas.

    
respondido por el Flori 24.01.2013 - 13:34
9

En OS X 10.10 Yosemite, usé este comando:

sudo launchctl config user path <my path setting>

Tenga en cuenta que establece la ruta de inicio 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 se apliquen los efectos.

    
respondido por el brki 31.07.2015 - 10:10
1

En Mountain Lion (10.8.4), $PATH se trata especialmente de alguna manera. launchctl setenv PATH /your/path:/here no tiene ningún efecto en las instancias $PATH en Terminal.app o Emacs.app que se lanzaron posteriormente desde el Dock o desde el Finder (mientras que launchctl setenv SPONG foo funciona bien). También $HOME/.launchd.conf no funciona. /etc/launchd.conf es la única forma que he encontrado para establecer PATH correctamente en todas partes. Desafortunadamente, no se pueden usar envars como $HOME allí, por lo que todos los usuarios de mi computadora portátil tienen /Users/nb/bin en su $PATH . Sólo yo, así que no me importa.

    
respondido por el Nick Barnes 26.06.2013 - 17:22
-1

Intente establecer la ruta en su ~ / .profile o ~ / .bash_profile o ~ / .zprofile (para zsh). Esto me funcionó con VimR: no estaba leyendo el PATH cuando se inició desde el dock, pero funcionó cuando se lanzó desde la terminal. Yo estaba corriendo en OSX 10.11 por cierto.

No tengo un buen control sobre esto para darte 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: enlace

También, vea una discusión similar aquí: enlace

    
respondido por el adampasz 23.10.2015 - 00:20
-3

En Mac OS X 10.8.4, Mountain Lion, el entorno de ruta incorpora las rutas enumeradas en este archivo:

/etc/paths

Puede editar este archivo con una herramienta de línea de comandos, como vim con el siguiente comando:

sudo vim /etc/paths
    
respondido por el user1814739 16.07.2013 - 05:42

Lea otras preguntas en las etiquetas