Cómo Agregar Ejecutables al PATH en Linux

Todo lo contrario al mundo Windows en el mundo Linux, generalmente, los programas carecen de instalador y hay que optar por dos formas de “instalarlos” en el sistema: compilando los fuentes o descargar un archivo .tar.gz y agregar al PATH el ejecutable del software descargado.

A continuación voy a explicar un poco más cómo hacer la segunda opción.

Llegando al PATH de tu corazón

linux path variable

Antes que nada, definamos lo que es el PATH o $PATH si quieres verlo desde la consola. Según el sitio web Linux Information Project, el PATH es una variable de sistema que le indica al shell donde se encuentran los archivos ejecutables, es decir, archivos que pueden correr programas.

Esto es lo que retorna mi variable $PATH cuando la imprimo en consola:

/home/cesc/.terraform:/home/cesc/Desktop/Postman:/home/cesc/.rvm/gems/ruby-2.2.2/bin:/home/cesc/.rvm/gems/ruby-2.2.2@global/bin:/home/cesc/.rvm/rubies/ruby-2.2.2/bin:/usr/local/heroku/bin:/home/cesc/.nvm/versions/node/v4.5.0/bin:/home/cesc/.terraform:/home/cesc/Desktop/Postman:/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/cesc/.rvm/bin:/home/cesc/.rvm/bin:/home/cesc/.rvm/bin

Destaco:

  • /home/cesc/.terraform
  • /home/cesc/Desktop/Postman

PATH es una variable que nos deja agregar muchas rutas donde están archivos ejecutables tal que, al estar en una consola, podamos ejecutarlos con un comando sin necesidad de hacer referencia a la ruta donde está alojado el programa. Algunos ejemplos:

Postman

La aplicación de Postman para Linux no cuenta con un instalador pero sí se puede descargar un archivo .tar.gz el cual podemos ubicar donde queramos y luego ejecutar el archivo Postman ahí ubicado, así:

$ /home/cesc/Desktop/Postman/Postman

Ejecutar el anterior comando en la consola lanzaría el programa en mi computador.

Nótese que Postman es el nombre del archivo ejecutable y está dentro de la carpeta Postman.

Si quisiera evitarme tener que escribir todo eso cada vez que quisiera usar Postman, podría agregar esa carpeta al PATH y la próxima vez solo tengo que escribir Postman.

En el archivo .profile que está en la carpeta del usuario agregamos la ruta al PATH:

export PATH=$HOME/Desktop/Postman:$PATH

Y de esa forma las próximas veces solo tengo que escribir Postman en la consola y se abrirá tal programa.

PostgreSQL en macOS

Cuando se instala el motor de base de datos PostgreSQL en macOS, por alguna razón, en algunos casos, el programa psql(el que nos permite entrar a la consola de postgres) no está en el PATH y si escribimos psql en la consola obtenemos: psql: command not found Mac como lo describe esta pregunta en Stack Overflow.

¿La solución? Agregar la ruta de instalación de PostgreSQL al PATH. ¿Cómo? Así:

Lo mismo que en Linux, es necesario exportar la ruta en el archivo .profile del usuario:

export PATH=/Library/PostgreSQL/9.5/bin:$PATH

la carpeta 9.5 varia según la versión instalada.

La clave está en que solo tenemos que agregar la carpeta donde está alojado el ejecutable.

Pero… ¿Cómo funciona?

Así como explicaba en un artículo pasado sobre como al usar la forma ./ al ejecutar un comando en la carpeta actual de trabajo evitamos que la shell busque en todos los directorios del sistema, al guardar las rutas de los ejecutables en el PATH nos aseguramos que la shell no se vaya a todos los directorios sino que primero busque en los que están en $PATH.

Por eso cuando escribo Postman en mi computador o psql en el MacBook Pro del trabajo la shell sabe cual ejecutar porque están en la variable $PATH.

Espero que esto sea de ayuda a quien quiera que lea esto y que igual quede para la posteridad.

Anuncios

Autor: cesc1989

Ingeniero de Sistemas que le gusta escribir y compartir sobre recursos que considera útiles, además que le gusta leer manga y ver anime.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s