Registrar programas en el Path de Windows y GNU/Linux


Puede ocurrir que tengas programas portables que no necesitan ser instalados para que funcionen, sin embargo, te gustaría que el Sistema Operativo (SO en lo adelante) lo reconozca para que pueda ser utilizado desde la consola sobre cualquier directorio en que te encuentres, o simplemente poder invocarlo desde el “ejecutador” de comandos del SO. A continuación te muestro algunos casos en los que es deseable hacer esto, y luego te muestro la forma de lograrlo.

Por ejemplo, si no deseas instalar Firefox en tu sistema y cuentas con una versión Portable para Windows, puede suceder que quieras invocarlo con simplemente escribir en la ventana de ejecutar (que se muestra con la combinación de teclas Windows + R) la palabra firefox (como sucede con la versión instalada). Esto tiene como ventaja adicional que si eres desarrollador web y utilizas un IDE (siglas en inglés de Integrated Development Environment) como WebStorm o PhpStorm puedas ejecutar tus proyectos con la versión Portable de Firefox, pues estos y otros IDEs lo invocan a partir de su comando (“firefox” en este caso). De ahí que tendrás simulada la instalación del navegador en tu sistema. Con esto te evitas unas cuantas líneas añadidas al registro de Windows y ayudas a que se mantenga limpio (no todos los programas que se instalan añaden información al registro de Windows, pero la mayoría, como Git, sí lo hacen).

Este ejemplo te puede parecer poco útil a simple vista, pues si posees una computadora personal, ¿qué más da tener Firefox instalado o en versión Portable? Bueno, si eso es lo que piensas hasta ahora, déjame mostrarte dos ejemplos en los que sea mucho más útil añadir programas al Path.

Si desarrollas para la web sobre Windows, seguro has lidiado con servidores web como XAMPP, WAMPP, Server2Go o Winginx, los cuales son soluciones que integran Apache, PHP, MySQL, NodeJS, MemCache, entre otros programas para que puedas desarrollar sin problemas. Lo que sucede es que siempre existen los casos en que quieres ejecutar un comando PHP para generar un proyecto en algún Framework o simplemente para ver la versión disponible o las extensiones instaladas (con php -m logras esto), pero como PHP no se encuentra añadido al Path de Windows, al ejecutar phpen la consola observarás un error que muestra que no se reconoce “php” como un comando interno o externo. Tener PHP en el Path también es útil para que IDEs como los mencionados anteriormente lo utilicen para temas de Debug o la ejecución de archivos .php.

¿Y para sistemas GNU/Linux? ¿Existen estos problemas? Generalmente en las distribuciones GNU/Linux los paquetes están accesibles desde los repositorios, pero puede ocurrir que tengas binarios que desees tener en el Path y ejecutarlos desde cualquier lugar. Te puedo ilustrar un ejemplo con PhpStorm y WebStorm.

Jetbrains, la compañía que creó estos IDEs, los distribuye en comprimidos con extensión “tar.gz” donde para ejecutarlos debes descomprimir el archivo e ir hacia la carpeta bin y ejecutar el script “webstorm.sh” o “phpstorm.sh”. Al iniciar el software, éste te crea automáticamente un acceso directo en el menú de programas, usualmente bajo la categoría “Desarrollo” o “Development” si utilizas el idioma inglés en tu distribución, pero ni desde la consola ni desde el ejecutador de comandos de la distribución (que se abre con Alt + F2 en la mayoría de los entornos como Unity y KDE) que uses estará disponible el software, por lo que se hace necesario añadirlo al Path del sistema para invocarlo de una forma más cómoda.

Luego de expuestos los ejemplos de por qué es útil saber añadir programas al Path de nuestro sistema, te muestro la vía para lograrlo tanto en Windows como en sistemas GNU/Linux.

Resolviendo el problema en Windows

Para que Windows reconozca tu binario y puedas ejecutarlo desde cualquier lugar, debes decirle algo como esto: “Hola Windows, tengo unos binarios que quiero que conozcas, están en esta carpeta. Recuerda, esta carpeta es importante pues ellos siempre estarán ahí”.

La frase anterior evidencia el mecanismo en que Windows reconoce programas externos como propios, y es diciéndole dónde están esos programas para que él los ejecute cada vez que se invocan desde la consola o la ventana de Ejecutar. Dicho esto, el problema se resuelve añadiendo, para el primer ejemplo, el directorio donde se encuentra Firefox Portable al Path del Sistema.

Para ello abre las “Propiedades del Equipo” y en el panel izquierdo de la ventana que se muestra selecciona la última opción: “Configuración avanzada del sistema”. En la nueva ventana que emerge selecciona el último botón: “Variables de entorno”, se abrirá una última ventana (en realidad, es la penúltima :)) dividida por dos recuadros. En el recuadro inferior busca la entrada titulada “Path”. El valor de esta entrada contiene todos los “Path” o caminos que Windows conoce, separados cada uno por el símbolo punto y coma. Por ende solo restaría “enseñarle” cuál es el camino donde se encuentra Firefox. Clic en el botón “Editar” inferior y en el campo “Valor de la variable” nos movemos hacia el final, añadimos un “punto y coma” y luego el directorio de Firefox (Ojo, solo añadir el directorio, omite el nombre del binario, firefox.exe en este caso).

Voilá!, ya tienes Firefox en el Path listo para ser ejecutado donde desees. La siguiente imagen muestra el proceso.

Añadir al path de Windows

Fig. 1: Añadiendo Firefox al Path de Windows

Resolviendo el problema en GNU/Linux

En las distribuciones GNU/Linux, a diferencia de Windows, lo que se realiza es un “enlace simbólico” (acceso directo) del programa que deseas tener en el Path “hacia una carpeta que ya se encuentre en el Path”, o sea, no registras el directorio en el Path (aunque se puede hacer perfectamente), sino una referencia a tu programa.

Para ver los directorios disponibles en el Path de tu distribución, ejecuta:

echo $PATH

Te mostrará un listado de todos los directorios que en él se encuentran. El directorio /usr/bin es uno de ellos, por lo que podemos registrar los IDEs WebStorm y PhpStorm globalmente creando un enlace simbólico de sus scripts hacia /usr/bin. Desde cualquier directorio donde te encuentres, ejecuta lo siguiente:

ln -s /home/tuusuario/carpetaWebStorm/bin/webstorm.sh /usr/bin/ws

Recalcar dos cosas aquí. Lo primero es que puedes ejecutar el comando anterior desde cualquier lugar donde te encuentres, pues las dos rutas que se especifican para crear el enlace simbólico son absolutas. Debes hacerlo así para que se referencie correctamente el enlace simbólico creado. Lo segundo es que el enlace no se tiene que llamar exactamente como el ejecutable original. En este caso “ws” hace referencia al script “webstorm.sh” por lo que desde la consola con escribir “ws” se abrirá automáticamente el IDE.

Ejecutando WebStorm desde el menú inicio en KDE

Fig. 2: Ejecutando WebStorm desde el Menú Inicio en Kubuntu

Nota: Para que esto funcione en las consolas de ambos sistemas operativos debes cerrarla si la tienes abierta y abrirla nuevamente para que reconozca lo nuevo que añadiste al Path.

El procedimiento para el sistema operativo OS X de Apple debe ser similar, pues al fin y al cabo está basado en Unix, y el comando ln -s está disponible para él también.

Esto es todo, espero que con los consejos brindados en el artículo hayas aprendido a portabilizar más e instalar menos. Personalmente tengo Winginx, NodeJS, Firefox, Google Chrome y Git portabilizados utilizando las técnicas antes mencionadas. Sin más, puedes dejar tus dudas en la sección de los comentarios, hasta la próxima.