863 votos

¿Cómo agregar un directorio al PATH?

¿Cómo agrego un directorio al $PATH en Ubuntu y hago que los cambios sean permanentes?

4 votos

help.ubuntu.com/community/EnvironmentVariables Aquí tienes todo lo que necesitas saber. Descubrí que gran parte de la información aquí era incorrecta o al menos el método no fue sugerido. Esta es una gran pieza de información que te permitirá saber dónde modificar tus variables de entorno basándote en la razón por la que lo estás haciendo y exactamente cómo hacerlo sin arruinar todo (como hice yo siguiendo algunos de los mencionados consejos erróneos). ¡Hasta luego, y gracias por todos los peces!

542voto

ko-dos Puntos 2392

Usando ~/.profile para configurar $PATH

Una ruta establecida en .bash_profile solo se establecerá en un shell de inicio de bash (bash -l). Si colocas tu ruta en .profile estará disponible en toda la sesión de tu escritorio. Eso significa que incluso metacity la utilizará.

Por ejemplo en ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Por cierto, puedes verificar la variable PATH de un proceso mirando su entorno en /proc/[pid]/environ (reemplaza [pid] con el número de ps axf). Por ejemplo, usa grep -z "^PATH" /proc/[pid]/environ

Nota:

bash como shell de inicio no analiza .profile si existen tanto .bash_profile como .bash_login. Según man bash:

busca ~/.bash_profile, ~/.bash_login, y ~/.profile, en ese orden, y lee y ejecuta comandos desde el primero que exista y sea legible.

Consulta las respuestas a continuación para obtener información sobre .pam_environment, o .bashrc para shells interactivos no de inicio, o establece el valor globalmente para todos los usuarios colocando un script en /etc/profile.d/ o utiliza /etc/X11/Xsession.d/ para afectar la sesión de los administradores de pantalla.

5 votos

Genial, eso funcionó. Vi que se añadirá automáticamente la carpeta bin si la creo, así que solo la usé en lugar de scripts. Gracias.

7 votos

En Xbunutu, el archivo .profile no se ejecuta, así que lo puse en el archivo .bashrc y funciona.

14 votos

Este fragmento de documentación está muy bien hecho: Documentación oficial sobre variables de entorno. Considera leerlo (sin mencionar que está actualizado a la última versión de las reglas para agregar valores a variables de entorno).

387voto

Seth Puntos 11

Edit .bashrc en tu directorio principal y agrega la siguiente línea:

export PATH="/ruta/a/dir:$PATH"

Necesitarás ejecutar el comando source en tu .bashrc o cerrar sesión/iniciar sesión (o reiniciar la terminal) para que los cambios surtan efecto. Para ejecutar el comando source en tu .bashrc, simplemente escribe

$ source ~/.bashrc

4 votos

¿Cómo "sacar la fuente de tu .bashrc"? ¿Cómo "reiniciar la terminal"?

4 votos

En bash es simplemente '. .bashrc' I hope this helps!

1 votos

Estaba asumiendo que estabas en tu directorio de inicio, ya que ahí es donde se encuentra el archivo .bashrc que quieres editar.

169voto

izx Puntos 78876

El lugar recomendado para definir variables de entorno permanentes, a nivel del sistema, que se apliquen a todos los usuarios es en:

/etc/environment

(donde se define el PATH por defecto)

Esto funcionará en el escritorio o la consola, en gnome-terminal o TTY, llueva o truene ;)

  • Para editar, abre la terminal y escribe:

    sudoedit /etc/environment

    (o abre el archivo usando sudo en tu editor de texto favorito)

Para hacer que funcione sin reiniciar, ejecuta . /etc/environment o source /etc/environment. Dado que este archivo es simplemente un script simple, se ejecutará y asignará la nueva ruta a la variable de entorno PATH. Para verificarlo, ejecuta env y ve el valor de PATH en la lista.

Relacionado:

10 votos

Y luego necesitas reiniciar para que los cambios surtan efecto...

3 votos

Esto es exactamente lo que necesitaba. Aprovisionando una imagen de máquina virtual temporal a través de Vagrant y necesitaba agregar Node y NPM al PATH.

9 votos

Para que los cambios surtan efecto, ejecuta . /etc/environment (sí, punto, un espacio y /etc/environment). Dado que este archivo es simplemente un script, se ejecutará y asignará la nueva ruta a la variable de entorno PATH. Para verificar, ejecuta env y verifica el valor de PATH en la lista.

62voto

Torcellite Puntos 158

Creo que la forma canónica en Ubuntu es:

  • crear un nuevo archivo en /etc/profile.d/

     sudo vi /etc/profile.d/SCRIPT_NAME.sh
  • añadir allí:

     export PATH="$PATH:YOUR_PATH_WITHOUT_TRAILING_SLASH"
  • y darle permisos de ejecución

     sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh

26 votos

Por lo general, es más seguro agregar su ruta personalizada al final de PATH en lugar de al principio. Esto evita reemplazar accidentalmente comandos del sistema con sus programas (o programas maliciosos de otra persona). Esto también evita mucha confusión cuando otra persona trabaja en su sistema (o le da consejos) y obtienen resultados inesperados de comandos que ha "reemplazado".

55voto

Manoj Singh Puntos 2441

Para completos principiantes (como yo) que se sienten más cómodos con la GUI:

  1. Abre tu carpeta $HOME.
  2. Ve a VerMostrar archivos ocultos o presiona Ctrl + H.
  3. Haz clic derecho en .profile y selecciona Abrir con Editor de Texto.
  4. Desplázate hasta el final y agrega PATH="$PATH:/mi/ruta/foo".
  5. Guarda.
  6. Cierra sesión y vuelve a iniciarla para aplicar los cambios (permite que Ubuntu cargue realmente el .profile).

5 votos

Editar el archivo .profile ya no se recomienda. Aún puedes usar este método para editar el archivo .pam_environment, consulta: help.ubuntu.com/community/EnvironmentVariables

0 votos

¡Gracias @PulsarBlow! No estoy seguro de cuál es exactamente la diferencia y el beneficio sin embargo... Este es el URL directo a la sección relevante: help.ubuntu.com/community/…

3 votos

Esta respuesta provocó que mi sistema dejara de registrar sesión debido a que se sobrescribieron todos los caminos. Usando Ubuntu 16.04.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X