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

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 comando no encontrado).
  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.

¿Puede alguien guiarme a través de los pasos para que funcione en OS X Mavericks, suponiendo que no tenga conocimientos de Unix?

Para macOS Catalina y superior (Mojave, Catalina, Big Sur) debe configurarlos dentro ~/.zshrccomo se muestra aquí .

Respuestas (10)

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 .profileCerrar Terminal.

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

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

Muchas gracias. Esto era lo que realmente buscaba. Ahora he configurado todas mis variables. ¿Qué quieres decir con aplicaciones GUI? Solo necesitaba algunas variables para java y maven para trabajar con eclipse, herramientas de primavera, etc. Eclipse es una aplicación con GUI (interfaz gráfica de usuario). ¿Te refieres a esto por GUI?
Está bien. He leído algunos y creo que te refieres realmente 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?
1. sí, eso es lo que quise decir con una aplicación GUI. 2. La configuración de variables de entorno para aplicaciones GUI en OS X 10.8 parece bastante difícil. Algunas aplicaciones le permiten definir variables de entorno, que se pasarán a otras aplicaciones, en sus preferencias, por ejemplo. También puede usar el open -a Appnamemétodo en una sesión de Terminal.
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 funcionara. Esperemos que esto ayude a alguien más si se encuentra con los mismos problemas...
@chuky si está usando zsh, debe agregarlos en su .zprofilelugar.

En Yosemite, debes poner export VARIABLE='something'adentro .bash_profile.

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

si está usando zsh, debe agregarlos en su .zprofilelugar.

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

o en.zprofile
Algunas de mis aplicaciones agregan algo a PATH, pero no vi ~/.zshrco .zprofiledijiste. @Tiempo de volar
Puede intentar crear ese archivo en su directorio de inicio y ver si zsh lo recoge.
A partir de macOS Catalina, las Mac usan zsh como shell de inicio de sesión predeterminado y shell interactivo: support.apple.com/en-us/HT208050

De http://hathaway.cc/post/69201163472/how-to-edit-your-path-environment-variables-on-mac :

  • terminal abierta
  • Corrertouch ~/.bash_profile; open ~/.bash_profile
  • En TextEdit, agregue

    export PATH="$HOME/.rbenv/bin:$PATH"
    
  • Guarde el archivo .bash_profile y salga (Comando + Q) de edición de texto.

  • Corrersource ~/.bash_profile
Esto supone que el usuario está utilizando Bash como shell. No funcionará para caparazones alternativos como Fish Shell.
Su ejemplo en particular solo muestra cómo extender la variable $PATH por una ruta personalizada. Puede crear su propia variable de entorno única export <variable name>='<variable value>'en el archivo de texto de inicio de su shell.

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

¡Gracias! para mi esta es la forma mas elegante de incluir un nuevo camino

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

Estupendo ! Pasé todo el día averiguando cómo resolver el problema de la variable de entorno y no estaba en ninguna parte. La aplicación que publicaste resolvió todos los problemas de mi entorno.
launchctl setenv environmentvariablename environmentvariablevalue

o

launchctl setenv environmentvariablename `command that will generate value`

use el ` adecuado y recuerde reiniciar la aplicación o el terminal para que la variable de entorno surta efecto.

puede verificar la variable de entorno mediante el comando printenv.

¡funciona! en VSC, debe cerrar todas las ventanas para reiniciar la terminal.
¡ Esta es la única respuesta (hasta la fecha) que establecerá la variable de entorno para todos los shells Y para las aplicaciones! ¡Gracias!

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 establecer la variable de entorno y qué entorno tiene.

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

En cuanto a tus puntos

  1. Entiende correctamente asumiendo que está en un shell 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. Necesitas crear .profile entonces 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 hacer esto 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 comando (o desde un programa iniciado en la línea de comando pero no abierto)

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

En cuanto a Internet, está lleno de basura: debe tener suficiente experiencia para comprender un artículo porque, como ha descubierto, muchos asumen 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.

Todavía no tengo ningún resultado. La pregunta vinculada no me lleva a la solución. Tengo una mac durante 4 años, pero todavía no tengo (no tenía) experiencia con UNIX. Pienso, cuando la respuesta de "¿Por qué es tan difícil?" es "se eliminó plist, cambio en 10.2 o 10.3, shell de tipo sh, hasta 10.7, etc.", la respuesta se contradice a sí misma.
Se podría hacer muy fácilmente como en las ventanas. De todos modos... lo que realmente esperaba era algo. así: 1- abra el directorio de inicio 2- abra la terminal 3- escriba "xxx" 4-haga clic en guardar, etc. uno no debe tener suficiente experiencia para configurar solo una variable simple, al menos podría encontrar una solución adecuada de esas respuestas repetitivas en La Internet.
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 (consulte las preguntas de Java)
Mi pregunta era acerca de 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. Pero como ya escribí, fue suficiente una simple propuesta de solución, que ya tengo gracias a Bhas.
Realmente no debe establecer variables sin antecedentes, debe saber lo que hacen

Conocimiento de fondo

  • Mac's OS=Operation System

    • viejos llamados:OS X
      • como tuOS X Mavericks
    • ahora llamado:macOS
  • para cualquier macOS, normalmente tiene una aplicación de consola integrada, llamadaTerminal

    • se ve así (mi nombre aquí es chino 终端:)
      • ingrese la descripción de la imagen aquí

¿Puede alguien guiarme a través de los pasos para que funcione en OS X Mavericks, suponiendo que no tenga conocimientos de Unix?

Pasos para agregar una variable de entorno en MacOS

Simple

  • use la terminal para agregar export JAVA_HOME=/your/patha su secuencia de comandos de lanzamiento
    • bash's~/.bash_profile
    • o zshes~/.zshrc

Detalle

terminal abierta

Launch Pad->Terminal

se parece a esto:

ingrese la descripción de la imagen aquí

preparar script de arranque

luego asegúrese de que ya tiene su script de arranque

para el caso básico y común es:

está utilizando bash, el script de arranque relacionado es~/.bash_profile

➜  ~ ls -lh ~/.bash_profile 
-rw-r--r--  1 crifan  staff   461B 10 28  2021 /Users/crifan/.bash_profile

si no se puede encontrar, puede crear uno:

touch ~/.bash_profile

agregue su variable de entorno en su script de arranque

entonces puedes editar el script de arranque~/.bash_profile

utilizando un editor de texto, como vi/ vim/ nano/echo

aquí uso más simple:

echo "export JAVA_HOME=/your/path" >> ~/.bash_profile

Aquí está mi salida para que usted se refiera:

(usando catpara imprimir el contenido del archivo para verificar que está bien)

➜  ~ cat ~/.bash_profile 
export THEOS=/opt/theos
export PATH=$PATH:$THEOS/bin

export THEOS_MAKE_PATH=$(THEOS)/makefiles
export THEOS_BIN_PATH=$(THEOS)/bin
export THEOS_LIBRARY_PATH=$(THEOS)/lib
export THEOS_VENDOR_LIBRARY_PATH=$(THEOS)/vendor/lib
export THEOS_INCLUDE_PATH=$(THEOS)/include
export THEOS_VENDOR_INCLUDE_PATH=$(THEOS)/vendor/include
export THEOS_FALLBACK_INCLUDE_PATH=$(THEOS)/include/_fallback
export THEOS_MODULE_PATH=$(THEOS)/mod
export THEOS_SDKS_PATH=$(THEOS)/sdks

➜  ~ echo "export JAVA_HOME=/your/path" >> ~/.bash_profile 
➜  ~ cat ~/.bash_profile                                  
export THEOS=/opt/theos
export PATH=$PATH:$THEOS/bin

export THEOS_MAKE_PATH=$(THEOS)/makefiles
export THEOS_BIN_PATH=$(THEOS)/bin
export THEOS_LIBRARY_PATH=$(THEOS)/lib
export THEOS_VENDOR_LIBRARY_PATH=$(THEOS)/vendor/lib
export THEOS_INCLUDE_PATH=$(THEOS)/include
export THEOS_VENDOR_INCLUDE_PATH=$(THEOS)/vendor/include
export THEOS_FALLBACK_INCLUDE_PATH=$(THEOS)/include/_fallback
export THEOS_MODULE_PATH=$(THEOS)/mod
export THEOS_SDKS_PATH=$(THEOS)/sdks

export JAVA_HOME=/your/path
➜  ~ 

[opcional] hacer que la variable surta efecto inmediatamente

normalmente arriba está bien. pero si desea que su variable de entorno agregada surta efecto de inmediato, puede usar:

source ~/.bash_profile

luego se puede usar echopara verificar que funcionó

➜  ~ source ~/.bash_profile 
....
➜  ~ echo $JAVA_HOME
/your/path

apéndice

el registro completo para consultar:

➜  ~ ls -lh ~/.bash_profile 
-rw-r--r--  1 crifan  staff   461B 10 28  2021 /Users/crifan/.bash_profile
➜  ~ cat ~/.bash_profile 
export THEOS=/opt/theos
export PATH=$PATH:$THEOS/bin

export THEOS_MAKE_PATH=$(THEOS)/makefiles
export THEOS_BIN_PATH=$(THEOS)/bin
export THEOS_LIBRARY_PATH=$(THEOS)/lib
export THEOS_VENDOR_LIBRARY_PATH=$(THEOS)/vendor/lib
export THEOS_INCLUDE_PATH=$(THEOS)/include
export THEOS_VENDOR_INCLUDE_PATH=$(THEOS)/vendor/include
export THEOS_FALLBACK_INCLUDE_PATH=$(THEOS)/include/_fallback
export THEOS_MODULE_PATH=$(THEOS)/mod
export THEOS_SDKS_PATH=$(THEOS)/sdks

➜  ~ echo "export JAVA_HOME=/your/path" >> ~/.bash_profile 
➜  ~ cat ~/.bash_profile                                  
export THEOS=/opt/theos
export PATH=$PATH:$THEOS/bin

export THEOS_MAKE_PATH=$(THEOS)/makefiles
export THEOS_BIN_PATH=$(THEOS)/bin
export THEOS_LIBRARY_PATH=$(THEOS)/lib
export THEOS_VENDOR_LIBRARY_PATH=$(THEOS)/vendor/lib
export THEOS_INCLUDE_PATH=$(THEOS)/include
export THEOS_VENDOR_INCLUDE_PATH=$(THEOS)/vendor/include
export THEOS_FALLBACK_INCLUDE_PATH=$(THEOS)/include/_fallback
export THEOS_MODULE_PATH=$(THEOS)/mod
export THEOS_SDKS_PATH=$(THEOS)/sdks

export JAVA_HOME=/your/path
➜  ~ source ~/.bash_profile 
...
➜  ~ echo $JAVA_HOME
/your/path

ingrese la descripción de la imagen aquí

Como está escrito actualmente, su respuesta no está clara. Edite para agregar detalles adicionales que ayudarán a otros a comprender cómo esto aborda la pregunta formulada. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .
También cómo mejora en otras respuestas. Además, el OP quiere cambiar las cosas en la terminal, lo que hace que la mayor parte de esta respuesta no sea útil, ya que saben cómo llegar a la terminal, o el OP quiere establecer variables para una aplicación GUI y, en ese caso, no responde.

terminal abierta

COMANDO-1

entrada: echo $SHELL salida: /bin/zsh

si su máquina usa zsh, use los siguientes comandos |

Comando - 2

vi ~/.zshrc

abrirá un archivo nuevo o editará un archivo existente.

ahora agregue la línea debajo y presione esc e ingrese: wq para guardar y cerrar el archivo. exportar JAVA_HOME=$(/usr/libexec/java_home)

Comando 3:: para aplicar los cambios

fuente ~/.zshr

Comando 4::

echo $JAVA_HOME /Librería/Complementos de Internet/JavaAppletPlugin.plugin/Contents/Home

verá la salida según la línea anterior.