Qué es la variable PATH del sistema y cómo cambiarla en GNU/Linux

Escrito por picodotdev el .
planeta-codigo gnu-linux
Enlace permanente Comentarios

Al ejecutar un comando en la terminal el intérprete de comandos de GNU/Linux lo busca en los directorios especificados en la variable de entorno del sistema PATH, esta variable de entorno contiene una lista de directorios separados por el caracter : en la que se busca por orden. Al instalar un paquete seguramente el programa ejecutable se instale en /usr/bin, directorio que por defecto está incluido en la variable PATH.

En algún caso quizá nos interese instalar un programa ejecutable propio, un caso puede ser que la distribución usada no disponga del paquete del programa o esté en una versión antigua y se desee una más nueva. Como ejemplo usando Arch Linux mi caso ha sido con las herramientas de HashiCorp como Consul, Vault y Nomad para las que de algunas no está en los repositorios oficiales sino que está en los repositorios de los usuarios AUR.

Las herramientas que está desarrolladas con el lenguaje Go suelen un único binario que no tienen más dependencias. Basta con copiar ese binario al directorio /usr/local/bin/ que está destinado a que los usuarios instalen sus propios binarios sin entrar en conflicto con los que los paquetes instalan. El directorio /usr/local/bin/ es otro de los directorios incluídos en los directorios de búsqueda de la variable PATH.

Otra posibilidad es modificar la variable PATH del sistema y añadir el directorio que deseemos, por ejemplo, se puede crear el directorio ~/Software/bin. El intérprete de comandos cuando el usuario introduce un comando lo busca en orden en los directorios especificados por la variable PATH, ya sea un binario o un script ejecutable de un intérprete de comandos como Bash.

Este es parte del contenido de la variable PATH del sistema en Arch Linux (los tres puntos es contenido que he omitido). Las distribuciones GNU/Linux suelen instalar los binarios de los programa ejecutables en los directorios /usr/local/sbin con los binarios para el usuario root y /usr/bin es donde los paquetes ubican sus binarios y programas ejecutables. En el directorio /usr/local/bin el usuario puede ubicar sus propios binarios sin que entren en conflicto con los instalados por los paquetes.

1
2
$ echo $PATH

echo-path.sh
1
2
...:/usr/local/bin:/usr/local/sbin:/usr/bin:...

echo-path.out

Dado que el programa que manualmente se ubica en el directorio para binarios de los usuarios /usr/local/bin o en un directorio propio no proviene de un paquete cuando se publique una nueva versión es el usuario el que ha de actualizar a la nueva versión descargando de nuevo el binario y copiarlo de nuevo al directorio.

La variable PATH se configura en el script de inicialización del intérprete de comandos, el de Bash es el archivo oculto .bashrc ubicado en el directorio de inicio del usuario, en mi caso en /home/picodotdev/.bashrc. El archivo .bashrc sirve también para Personalizar el prompt del sistema del intérprete de comandos Bash y el caso de utilizar el sistema de control de versiones Git para Personalizar el prompt del intérprete Bash con información de estado del repositorio git.

Comparte el artículo: