¿Cómo cambiar la variable de entorno PATH a OS X 10.8 Mountain Lion que será visible para las aplicaciones GUI? [duplicar]

14

Probé todos los métodos que escuché para configurar las variables de entorno en OS X 10.8 pero ninguno parece funcionar.

Para probar, ejecute un script bash desde una aplicación gui como Eclipse o IntelliJ IDEA.

#!/bin/bash
set|grep PATH

Cosas que probé y que no funcionan incluso después de reiniciar:

  • /etc/paths y /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (lista binaria hecha como se recomienda)
  • corriendo launchctl setenv PATH $PATHdesde la línea de comandos, esto se supone que actualizar la ruta de aplicaciones GUI, al menos para la sesión actual. Adivina qué, no hay cambio.

Parece que PATH siempre es PATH=/usr/bin:/bin:/usr/sbin:/sbinpara aplicaciones GUI.

sorin
fuente
¿Está de acuerdo con una solución que establece la ruta bash o realmente necesita cambiar el valor de launchd de la ruta base para todos los procesos?
bmike
Necesito cambiar la RUTA utilizada por las aplicaciones GUI, para terminal / bash / ... Ya tengo un gran conjunto de soluciones de trabajo.
sorin
No sé por qué eclipse y otros no solo admiten variables de entorno de tiempo de ejecución, por lo que cada desarrollador de Java en Mac no necesita preocuparse por establecer la ruta o el origen de sus variables deseadas en cada proyecto.
bmike
respuesta ver aquí: apple.stackexchange.com/questions/51677/…
Flori

Respuestas:

8

Con Mountain Lion /etc/launchd.confes donde debe configurar la ruta de acceso de las aplicaciones GUI. Recuerde que no es un archivo de script; solo admite launchctlcomandos, por lo que debe escribir algo como:

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

Tenga en cuenta también que no admite sustituciones de variables de entorno de shell (como $PATH), por lo que tendrá que establecer cada ruta que desee incluir. Es una buena idea mantener los caminos originales que ha mencionado ( /usr/bin:/bin:/usr/sbin:/sbin).

Tendrá que reiniciar después de cambiar (o crear) el archivo para que los cambios surtan efecto.

João Campos
fuente
Esto funcionó para mí en 10.8.2 para configurar una RUTA que se podía usar con Keyboard Maestro.
TJ Luoma
La página de manual dice que puede usar $ HOME / .launchd.conf pero eso no funcionó para mí. Usando /etc/launchd.conf lo hizo. Estoy en 10.8.4
pedz
No funciona para mí:-bash: setenv: command not found
Colas
Si alguien se confundió como Colas, setenves un launchctlcomando, entonces lo usa como launchctl setenv.
Jon Shier
3

Funciona si llamas a la aplicación GUI desde la Terminal:

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

ingrese la descripción de la imagen aquí

No es realmente agradable ni cómodo, pero hace el trabajo si es necesario.

nohillside
fuente
En breve NO MANERA. No estoy dispuesto a hacer esto, solo funcionará algunas veces. La aplicación también se puede iniciar al hacer clic en un archivo.
sorin
2
Como dije, no es realmente agradable, pero puede funcionar hasta que Apple solucione el problema (porque debería ser posible con launchctl).
nohillside
2

Preparé otra solución, inspirada por Patrix uno aquí , que espero sea un poco menos dolorosa. Abra Automator, seleccione una aplicación como destino y elija Execute Shell script(o como se llame, en alemán es "Shell-Skript ausführen" como se puede ver arriba) como acción. En el script, solo escriba

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

Luego guarde todo donde quiera, y si necesita ejecutar YourApplication Here , abra la "aplicación de automatización " creada.

He probado esto con Terminaltan YourApplicationHere y sierra con launchctl exportque FOO estaba de hecho puse manos a la barra . Espero que funcione para otros también.

Finalmente, si usa esta solución para sus variables de entorno, en lugar de escribir las launchctlcosas en el script de shell, puede llamar /Users/Shared/conflaunchd.sh(que debe inventar primero, junto con el archivo que describe las variables).

Percival Ulises
fuente
-1

Supuestamente, launchctlproporciona PATHaplicaciones GUI. Para establecer la ruta a la de la ruta de acceso de shell, agregue lo siguiente a su archivo rc de shell después de configurar su ruta:

launchctl setenv PATH $PATH
ismail
fuente
1
Desafortunadamente esto no funciona :-(
nohillside
Permitimos respuestas que hacen un esfuerzo de buena fe para abordar la pregunta. Incluso permitimos respuestas incorrectas y dejamos que la votación hable por la corrección. Hacer comentarios sin hacerlo personal es la mejor manera de abrir un agujero en un argumento defectuoso en lugar de desalentar los intentos de respuesta.
bmike