14 votos

¿Cómo puedo añadir una ruta a la variable de entorno PATH?

Quiero añadir una ruta a la PATH ¿variable de entorno?

He probado con export PATH=/mypath:$PATH y funciona. Pero la próxima vez que inicie el Terminal, mi nueva ruta no está en el PATH variable de entorno.

¿Cómo puedo añadir una ruta a la PATH y debería estar ahí también la próxima vez que inicie el Terminal.


Ahora vuelvo a tener problemas con esto, el truco que funcionaba antes ya no parece funcionar.

Lo he intentado con:

echo 'export GRADLE_HOME=/Users/jonas/gradle-1.2/' >> ~/.profile
echo 'export PATH=GRADLE_HOME/bin:$PATH' >> ~/.profile

para añadir dos variables de entorno. Entonces mi ~/.profile -el archivo tiene este contenido:

export GRADLE_HOME=/Users/jonas/gradle-1.2/
export PATH=GRADLE_HOME/bin:$PATH

Pero cuando empiezo una nueva Terminal ventana y tipo gradle (el comando que añadí a PATH ), recibo un mensaje de que el comando no existe. Si ejecuto el comando desde /Users/jonas/gradle-1.2/bin ¡funciona bien!

0 votos

Si por casualidad metes la pata en algo, mira también: Restablecer la variable PATH

1 votos

La asignación a PATH (segunda exportación) debe ser con $GRADLE_HOME

13voto

steveverrill Puntos 1090

OSX lee los siguientes archivos en orden cuando se abre un terminal :

/etc/profile
~/.bash_profile
~/.bash_login   
~/.profile     

Así que coloque su adición de camino en uno de estos. Normalmente pongo las adiciones en ~/.bash_profile

3 votos

Gracias, he utilizado echo 'export PATH=/mypath:$PATH' >> ~/.profile

6voto

Yasyf Puntos 416

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile debería funcionar.

Si utilizó echo 'export PATH=/my/path:$PATH' > ~/.bash_profile o cualquier otra variación, ¡estaría sobrescribiendo el contenido de su perfil!

0 votos

Nota : Si no es obvio, .bash_profile es un archivo de texto y también puedes abrirlo y editarlo directamente para añadir cualquier ruta con el comando nano ~/.bash_profile en el Terminal o utilizando TextEdit ( superuser.com/a/912645 ).

5voto

N1ng Puntos 28

Actualizado en 2021.0908

Estoy usando esto:

~/.zsh/
 .fzf.zsh
 .zcompdump
 .zprofile              # This will be read before .zshrc.
 .zsh_functions         # This is for my custom scripts.
 .zsh_history
 .zshenv                # (Important) Create a symlink of this to your ~/.
 .zshrc                 # Put everything in this file is fine. (cont.)
                           # (cont.) this is the ".bashrc" in your head.

Algunos puntos:

  • Mi .zprofile está vacío. Prefiero poner todas las cosas dentro .zshrc porque no contiene demasiadas líneas.
  • El contenido de .zshenv DEBE contiene esta línea para que podamos organizar la familia .zsh en el ~/.zsh carpeta, Y no te olvides de ponerle un enlace simbólico a tu ~ donde su sistema operativo pueda leer:

    ZDOTDIR=/.zsh

DONE . Usted puede ignorar mi antigua respuesta sigue.


Respuesta antigua: (No es correcto. Poner todo dentro .zshrc está bien).

Pregunta antigua pero, para los usuarios de MacOS X Catalina:

Crear/editar ~/.zshenv :

~~# comment for yourself PATH="$PATH:to/your/path"

Obsérvese que modificar PATH en ~/.zprofile o ~/.zshrc no es correcto, debería ser ~/.zshenv .

Si necesita anteponer algo a PATH crear/editar más ~/.zprofile :

# apply the prepend to PATH
[[ -r ~/.zshenv ]] && source ~/.zshenv
# remove duplicate in PATH
typeset -U PATH~~ 

Referencia: http://zsh.sourceforge.net/Intro/intro_3.html

1 votos

A qué te refieres con "Si necesitas anteponer al PATH" y por qué no se puede hacer en .zshenv ¿también?

0 votos

@nohillside: Perdón por mi mala gramática, pero buena pregunta. Si intentas anteponer algo a la PATH en ~/.zshenv por PATH="to/your/path:$PATH" sin las líneas en ~/.zprofile No funcionará. Algo llama path_helper moverá esos /usr/local/bin/:/usr/bin:... al frente de PATH .

0 votos

En resumen, es una cuestión de orden de carga. path_helper se ejecutará después de ~/.zshenv pero antes ~/.zproflie . Y desde mi estudio de hoy recomendaría usar symlink en lugar de modify PATH que es mucho más simple.

3voto

Jax Puntos 23

Además de los lugares mencionados por @RobZolkos, el shell de inicio de sesión también busca en /etc/paths y los archivos dentro de /etc/paths.d/ . Una entrada de ruta por línea en estos archivos.

Ver /etc/profile y el página del manual para path_helper .

0 votos

De acuerdo, ¡gracias! pero el mayor problema era cómo añadir la ruta. Pero he encontrado echo 'export PATH=/mypath:$PATH' >> ~/.profile

0 votos

@Jonas: Me he dado cuenta de que tu problema estaba resuelto. Mi respuesta estaba pensada para el beneficio de los futuros lectores, para que puedan ver todas las opciones disponibles.

0voto

Maurizio Loreti Puntos 144

Inserte en el .bashrc estas líneas de código:

function pathadd {              # Add new element to PATH
  if ! echo $PATH | egrep -q "(:|^)$1(:|$)"
  then if [ "$2" = "after" ]
       then PATH="$PATH:$1"
       else PATH="$1:$PATH"
       fi
  fi
}

entonces escribe un comando como: pathadd /opt/local/bin o pathadd /opt/local/bin after .

0 votos

Observe las dos funciones en el init- de fink github.com/fink/base-files/blob/master/init.sh.in

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