15 votos

¿Cómo establecer una variable de entorno de forma permanente en MacOS Catalina?

Estoy intentando establecer dos variables de entorno en la versión 10.15.5 de MacOS, he abierto un terminal y he probado:

vi ~/.bash_profile

Añadí las exportaciones a eso, guardé y salí de vi, cerré y volví a abrir la terminal, no veo mis nuevas exportaciones.

También lo he intentado:

vi ~/.profile

Añadí las exportaciones a eso, guardé y salí de vi, cerré y volví a abrir la terminal, tampoco veo las exportaciones ahí.

¿Qué no he hecho?

0 votos

¿Qué shell estás utilizando?

0 votos

@nohillside, zsh

12voto

fahim Puntos 133

Comenzando con MacOS Catalina -- por defecto toma zsh y por lo tanto hay que cambiar en zprofile. Por favor, siga los siguientes pasos

  1. Iniciar la aplicación Terminal

  2. Crear archivo de perfil:

    touch ~/.zprofile
  3. Abrir el archivo en el editor:

    open ~/.zprofile
  4. Añade las definiciones de exportación que necesites, una por una.

    Por ejemplo:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home
    export GRADLE_HOME=/Users/myuser/Documents/installs/gradle-6.8.3
    export PATH=$PATH:/Users/myuser/Documents/installs/gradle-6.8.3/bin
  5. Ejecutar el nuevo .zprofile reiniciando el Terminal o usando esto:

    source ~/.zprofile

0 votos

¿Por qué difiere de la respuesta anterior? apple.stackexchange.com/a/395461/237

0 votos

@mmmmm He intentado añadir los pasos exactos que debemos seguir con ejemplos. También como sólo se mencionó para zsh, a veces la gente puede confundirse con la solución. Un punto más es si ves comentarios donde se menciona como esto funcionará sólo para zsh y por lo tanto pensó que es mejor tener los pasos detallados que la gente puede seguir y resolver sus problemas.

0 votos

Son la parte superior de la otra respuesta que cumple lo que pedía la pregunta. OK, es una mejora, pero entonces debería haber sido un editr a la otra respuesta. Pero entonces, ¿por qué sugieres editar un archivo diferente?

5voto

Kelly Thomas Puntos 113

Clasificado, vi ~/.zshenv .

Añadidas las exportaciones, guardar y salir, reiniciar el terminal, mi sistema estaba usando el terminal zsh.

O bien, sin reiniciar el terminal, simplemente añadir:

source ~/.zshenv o source ~/.profile

Después de la edición.

0 votos

Cada cáscara es diferente. Pero la página del manual del shell suele documentar dónde encuentra sus scripts. Por ejemplo, en una ventana de terminal, escriba man zsh

0 votos

Esta solución sólo funciona para zsh

0 votos

A menos que .profile fuentes .zshenv el abastecimiento de esto no ayudará :-)

0voto

Leo Puntos 1

Las respuestas dadas anteriormente para .zprofile y .zenv también se pueden aplicar al archivo .zshrc script. Los tres archivos se invocan al iniciar la sesión

1 votos

Bienvenido a Pregunta diferente . Esto habría sido mejor como una edición de la respuesta, no como una respuesta separada. -- Además, por favor, absténgase de utilizar términos como "respuestas dadas por encima" porque si hay más de una respuesta el orden de las respuestas depende de cómo uno haya establecido su preferencia como Activa, Más antigua o Votos. Por ejemplo, en mi sistema no hay ninguna respuesta por encima de ésta, ya que está directamente debajo de la pregunta y todas las respuestas están por debajo de ésta.

0 votos

Entendido, gracias.

0voto

Nathan Puntos 31

Corto respuesta:

 vi ~/.zshenv

añade tus env vars al archivo:

export KEY_NAME_HERE=/foo/bar/foobar
export KEY_NAME_HERE=foobar123

No olvide source ~/.zshenv o abrir un nuevo intérprete de comandos

Más largo respuesta sobre qué archivo usar según la página man de zsh:

Los comandos se leen primero de /etc/zshenv y luego de $ZDOTDIR/.zshenv. /etc/zshenv se ejecuta para todas las instancias de zsh, es importante que sea lo más pequeño posible

Si el shell es un shell de inicio de sesión, los comandos se leen de /etc/zprofile y luego $ZDOTDIR/.zprofile. Como

A continuación, si el shell es interactivo, los comandos se leen de /etc/zshrc y luego de $ZDOTDIR/.zshrc.

Finalmente, si el shell es un shell de inicio de sesión, se leen /etc/zlogin y $ZDOTDIR/.zlogin.

Si está usando las opciones RCS o GLOBAL_RCS con /etc/zshenv, entonces debería revisar la página man de zsh específicamente bajo "STARTUP/SHUTDOWN FILES" ya que puede causar modificaciones inesperadas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X