¿Cómo configuro las variables de entorno en OS X?

71

Siempre tengo dificultades para configurar las variables de entorno en OS X como JAVA_HOME, M2_HOMEo PATH. ¿Cómo configurarlos en OS X Mavericks?

Investigué un poco, pero las respuestas que encontré realmente no me ayudaron todavía:

  1. export JAVA_HOME=/... (Pero parece que los cambios son temporales, solo para una sesión de terminal).
  2. setenv JAVA_HOME=/... (Pero el comando no se encuentra).
  3. Abra .profiley escriba las variables dentro para que los cambios sean permanentes ( .profileno existe).
  4. Abra .bash_profiley escriba las variables dentro para que los cambios sean permanentes ( .bash_profileno existe).
  5. vi ~/.bash_profile(Todo un desafío para alguien que no sabe vi).
  6. Creando tu propio enrivonment.plistarchivo.

¿Alguien puede guiarme a través de los pasos para que funcione en OS X Mavericks, suponiendo que no haya conocimientos de Unix?

akcasoy
fuente
1
Unix (y cualquier otro sistema operativo) puede ser difícil para los nuevos usuarios, por lo que puedo entender su frustración. Sin embargo, la pregunta escrita es bastante amplia y no traerá las respuestas que está buscando. ¿Puedes reescribirlo para enfocarte en el problema que realmente tienes (como "¿Cómo configuro JAVA_HOME y PATH en Mavericks") que asegurará que obtengas buenas respuestas sobre las que puedas construir?
Nohillside
Como veo, Stuffe ya ha editado mi pregunta. Gracias Mi pregunta es como dice el título, cómo configurar JAVA_HOME y PATH en Mavericks.
akcasoy
@patrix: La próxima vez, te explicaré mi problema o lo que quiero preguntar, y escribirás MI PREGUNTA CON TUS PALABRAS. ¿De acuerdo? Parece que ustedes moderadores están muy satisfechos al hacer esto.
akcasoy

Respuestas:

45

Tengo un .profile en mi directorio de inicio; contiene muchas export …declaraciones para variables de entorno.

Puede crear dicho archivo abriendo una Terminal y emitiendo el comando touch .profile Cerrar Terminal.

Luego, debe abrir ese archivo en un editor de texto sin formato (TextWrangler, por ejemplo). También puede usarlo nano .profileen una ventana de Terminal (el directorio actual debe ser su hogar), que es mucho más fácil que vi. Insertar líneas como export JAVA_HOME=…. Guarde, salga nanosi lo usó y salga de una Terminal en ejecución.

Abra la Terminal y emita el comando envpara ver todas las variables de entorno. Verifique que los que definió tengan el valor que les asignó. Deberías estar listo para irte ahora. Pero no olvide que las variables de entorno definidas en .profileno se pasan a las aplicaciones GUI.

Bhas
fuente
Muchas gracias. Esto era lo que realmente estaba buscando. Ahora he establecido todas mis variables. ¿Qué quieres decir con aplicaciones GUI? Solo necesitaba algunas variables para Java y Maven para trabajar con eclipse, herramientas de resorte, etc. Eclipse es una aplicación con GUI (interfaz gráfica de usuario). ¿Quieres decir esto por GUI?
akcasoy
Okay. He leído algunos y creo que te refieres a GUI con GUI. ¿Hay alguna manera de hacer que estas variables estén disponibles en todas partes? ¿Cuál es la forma más común o dónde está la ubicación más común para definirlos entonces?
akcasoy
1. sí, eso es lo que quise decir con una aplicación GUI. 2. configurar las variables de entorno para las aplicaciones GUI en OS X 10.8 parece ser difícil de dejar. Algunas aplicaciones le permiten definir variables de entorno, que se deben pasar a otras aplicaciones, en sus preferencias, por ejemplo. También puede usar el open -a Appnamemétodo en una sesión de Terminal.
Bhas
44
No sé por qué, pero para mí (OS X Yosemite 10.10.1) .profileno ayudó. Tuve que poner las exportdeclaraciones en el .bash_profilepara que funcione. Esperemos que esto ayude a alguien más si se encuentra con los mismos problemas ...
Chuky
24

En Yosemite, deberías poner export VARIABLE='something'adentro .bash_profile.

He intentado escribir el export VARIABLE='something'interior .profilesin éxito.

Rafael Eyng
fuente
En efecto. .profile solo funciona cuando lo ejecuta manualmente a través de source .profile Pero después de reiniciar, el .profile no se carga. El .bash_profile es.
KC
No es realmente correcto.
Koray Tugay
2
@KorayTugay ¿Podría señalar lo que está mal y tal vez una forma de solucionarlo?
Rafael Eyng
7

Para aquellos a quienes no les gusta tener problemas con los editores y los archivos de texto, también hay una herramienta GUI en GitHub .

mkraemerx
fuente
Excelente ! Pasé todo el día tratando de resolver el problema de la variable de entorno y no estaba en ninguna parte. La aplicación que publicaste resolvió todos mis problemas ambientales
Shajo
5

Para agregar un directorio a una ruta, hay una mejor opción en OS X: todas las entradas en el archivo / etc / paths se agregan a la ruta, antes de que se inicie cualquier shell.

Edite este archivo con:

sudo pico /etc/paths

Para obtener más información, consulte: https://gist.github.com/Overbryd/1669348

Bjinse
fuente
¡Gracias! para mí esta es la forma más elegante de incluir un nuevo camino
Asimov
4

OSX solo ha tenido un cambio en las variables de entorno y fue en Lion, donde se eliminó ~ / .MacOSX / environment.plist. Aunque también ha habido un cambio en el shell predeterminado en 10.2 o 10.3 de tsch a bash.

Debe definir para qué desea que se establezca la variable de entorno y qué entorno tiene.

También debe comprender los shells y Unix que, por sus comentarios, no ha hecho completamente. Hay varios tutoriales de nbash.

En cuanto a sus puntos

  1. Entiende correctamente suponiendo que está en un shell de tipo sh (por ejemplo, bash o zsh)
  2. Esto es para shells C, por ejemplo, tcsh, por lo que no funcionará en los valores predeterminados recientes.
  3. Necesita crear .profile luego funciona
  4. Es .bash_profile o mejor .bashrc y primero debe crear el archivo
  5. Totalmente correcto :) Use TextEdit o nano (o emacs)
  6. Corrija hasta OSX 10.7 y la forma de hacerlo para los programas llamados desde Workspace, por ejemplo, desde Dock o Finder (o abierto)

Entonces, 3 o 4 funcionan si está llamando al programa desde la línea de comandos (o desde un programa iniciado en la línea de comandos pero no por abierto)

En cuanto a los programas de la GUI, vea esta pregunta

En cuanto a que Internet está lleno de basura, debes tener suficientes antecedentes para entender un artículo porque, como has descubierto, muchos suponen cosas o son incorrectas. Los sitios de StackExhnage deberían ser mejores, ya que puede ver si se ha acordado una respuesta a partir del número de votos.

usuario151019
fuente
Todavía no tengo ningún resultado. La pregunta vinculada no me lleva a la solución. Tengo un mac durante 4 años, pero todavía no tengo (no tuve que) experiencia sobre UNIX. Creo, cuando la respuesta de "¿Por qué es tan difícil?" es "se eliminó plist, cambio en 10.2 o 10.3, shell tipo sh, hasta 10.7, etc." la respuesta contradice a sí misma.
akcasoy
Se podría hacer muy fácilmente como en ventanas. De todos modos ... lo que realmente esperaba era algo. de esta manera: 1- abre el directorio de inicio 2- abre el terminal 3- escribe "xxx" 4-clic guardar, etc. uno no debe tener suficiente fondo para establecer solo una variable simple, al menos podría encontrar una solución adecuada de esas respuestas repetitivas en La Internet.
akcasoy
Si necesita variables de entorno, debe comprender lo que están haciendo y eso requiere antecedentes. Además, como no indicó para qué estaba usando las variables, tengo que dar todas las diferencias posibles. Nota para la configuración de Java JAVA_HOME no es necesariamente la mejor manera (vea las preguntas de Java)
user151019
Mi pregunta fue acerca de cómo configurar las variables. Ni sobre lo que están haciendo, ni sobre cualquier otra cosa que requiera más información. Obviamente, puede configurarlos incluso sin fondo. Gracias por tu respuesta sin embargo. Pero como ya escribí, una simple propuesta de solución fue suficiente, que ya tengo gracias a Bhas.
akcasoy
Que realmente no debería establecer variables y sin fondo que tiene que saber lo que hacen
user151019
4

En caso de que esté usando zshcomo yo, debe modificar ~/.zshrc.

adiós
fuente
1
O bien.zprofile
hasta