15 votos

¿Cómo configurar una variable de entorno de forma permanente en zsh en macOS Catalina?

Estoy tratando de establecer dos variables de entorno en macOS versión 10.15.5, he abierto un terminal y probé:

vi ~/.bash_profile

Agregué las exportaciones a eso, guardé y salí de vi, cerré y volví a abrir el terminal, no veo mis nuevas exportaciones.

También he intentado:

vi ~/.profile

Agregué las exportaciones a eso, guardé y salí de vi, cerré y volví a abrir el terminal, tampoco veo las exportaciones allí.

¿Qué es lo que no he hecho?

0 votos

¿Qué shell estás usando?

0 votos

@nohillside, zsh

12voto

fahim Puntos 133

Comenzando con macOS Catalina -- por defecto toma zsh y por lo tanto necesitas cambiar en zprofile. Sigue los siguientes pasos

  1. Abre la aplicación Terminal

  2. Crea el archivo de perfil:

    touch ~/.zprofile
  3. Abre el archivo en un editor:

    open ~/.zprofile
  4. Agrega las definiciones de exports que necesites, una por línea.

    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. Ejecuta el nuevo .zprofile ya sea reiniciando Terminal o utilizando esto:

    source ~/.zprofile

0 votos

Por qué esto difiere de la respuesta dada anteriormente apple.stackexchange.com/a/395461/237

0 votos

@mmmmm He tratado de agregar los pasos exactos que debemos seguir con ejemplos. Además, como se mencionó anteriormente para zsh, a veces la gente puede confundirse con la solución. Otro punto es que si ves comentarios donde se menciona que esto solo funcionará para zsh, pensé que sería mejor tener los pasos detallados que las personas pueden seguir y resolver sus problemas.

0 votos

Son los primeros en la otra respuesta que cumplen con lo que preguntaba la pregunta. Está bien, es una mejora, pero entonces debería haber sido una edición a la otra respuesta. ¿Pero de nuevo, por qué sugieres editar un archivo diferente?

5voto

Kelly Thomas Puntos 113

Ordenado, vi ~/.zshenv.

Agregadas las exportaciones, guardar y salir, reiniciar la terminal, mi sistema estaba usando la terminal zsh.

O sin reiniciar la terminal, simplemente agregar:

source ~/.zshenv o source ~/.profile

Después de editar.

0 votos

Cada shell es diferente. Pero la página de manual para la shell generalmente documenta dónde encuentra sus scripts de inicio. Por ejemplo. En una ventana de terminal, escribe man zsh

0 votos

Esta solución solo funciona para zsh

0 votos

A menos que .profile source .zshenv, ¡este comando no servirá :-)

0voto

Leo Puntos 1

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

1 votos

Bienvenido a Ask Different. Esto habría sido mejor presentado como una edición a la respuesta, no como una respuesta separada por sí sola. -- Además, por favor abstente de usar términos como "respuestas dadas arriba" porque si hay más de una respuesta, el orden de las respuestas depende de cómo uno haya configurado sus preferencias como Activas, Más antiguas o Votos. En este caso, no hay ninguna respuesta arriba de esta ya que está directamente debajo de la pregunta y todas las respuestas están debajo de esta en mi sistema.

0 votos

Punto tomado, gracias.

0voto

Nathan Puntos 31

Respuesta corta:

 vi ~/.zshenv

Agregue sus variables de entorno al archivo:

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

No olvide hacer source ~/.zshenv o abrir una nueva terminal

Respuesta más larga sobre qué archivo usar según la página del manual de zsh:

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

Si la shell es una shell de inicio de sesión, los comandos se leen desde /etc/zprofile y luego desde $ZDOTDIR/.zprofile.

Luego, si la shell es interactiva, los comandos se leen desde /etc/zshrc y luego desde $ZDOTDIR/.zshrc.

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

Si está utilizando las opciones RCS o GLOBAL_RCS con /etc/zshenv, entonces debería revisar la página del manual de zsh específicamente bajo "ARCHIVOS DE INICIO/APAGADO" ya que eso podría causar modificaciones inesperadas.

0 votos

No es necesario crear un archivo inexistente primero con touch, vi lo creará cuando lo guardes.

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