En ocasiones nos bajamos juegos y programas que no son instalables. Vienen en un fichero comprimido, se descomprimen, vamos a la carpeta y lo ejecutamos. Lo mismo sucede si nos creamos algún shell script. Está bien, y podemos crear lanzadores, pero en ocasiones nos interesa o simplemente nos gusta ejecutarlos desde cualquier sitio dentro de una consola o escribiendo sólo el nombre en ALT+F2. Con este tip os voy a mostrar cómo hacerlo.
En Linux hay ciertas variables llamadas variables de entorno. Hay un número interesante, pero en este tipo vamos a tratar sólo una, la que nos interesa: $PATH.
Cuando abrimos ALT+F2 o abrimos una consola y escribimos dentro «firefox», lo que hace el sistema es buscar un ejecutable con ese nombre en una serie de carpetas indicadas en $PATH. Si queréis podéis saber exactamente cuales son con este comando:
$ echo $PATH
Os saldrá un listado parecido o igual a este
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Si os fijáis bien no es una única carpeta, sino que son varias separadas por ‘:’.
Bien, comprendido esto voy a poneros dos ejemplos distintos con dos soluciones distintas para que podáis ejecutar desde cualquier sitio y simplemente poniendo el nombre esos programas que no son instalables.
Ejemplo 1: Carpeta con pequeños ejecutables |
Supongamos que tenemos una carpeta con unos cuantos ejecutables de consola que nos interesa que sean accesibles desde cualquier sitio. Podríamos meterlos directamente en /usr/bin por ejemplo, pero no es una solución muy elegante.
Otra opción más asequible sería indicarle a $HOME que busque en esa carpeta también. Es simple, tan sólo tenemos que añadirle la carpeta de esos ejecutables, supongamos que es «/home/ceec/pepinillos«. Esto se haría de este modo:
$ PATH="$PATH:/home/ceec/pepinillos"
Es decir, el contenido de PATH es el que ya tiene más un separador de lo anterior y la nueva carpeta. listo, ya tenemos nuestros pequeños programas accesibles desde cualquier lugar.
Ejemplo 2: Programa o juego del que dependen otros archivos |
La mayoría de las ocasiones estos programas y juegos comprimidos no es un sólo ejecutable, sino que traen una serie de jerarquía de carpetas y directorios que necesita el ejecutable principal.
La opción anterior no sería la mejor, ya que no sería muy coherente añadir una carpeta a $PATH por cada programa y juego con estas características.
La opción de copiar el ejecutable a una de las rutas de búsqueda de $PATH tampoco nos vale precisamente porque dicho ejecutable necesita el resto de archivos.
¿Qué hacemos? Pues una especie de acceso directo en una carpeta de búsqueda de $PATH que le lleve a la ruta correcta donde está el ejecutable y sus archivos. Esta especie de acceso directo se llama enlace simbólico.
De esta forma cuando ejecutemos el programa o juego en cuestión, por ejemplo «pepinon» el sistema buscará en las carpetas de $PATH. Si en una de ellas tenemos un enlace simbólico llamado «pepinon» se ejecutará el original al que referencia el enlace. De hecho si abrís nautilus y os vais por ejemplo a /usr/bin veréis que muchos de esos ejecutables tienen como icono una flechita. Eso indica que es un enlace simbólico.
Bien, explicado esto vamos a crear ese enlace simbólico en /usr/bin de, por ejemplo, un juego que se llama «pepino» y que está en una carpeta con el mismo nombre dentro de «juegos«. Al hacer el enlace simbólico en una carpeta restringida para un usuario normal, necesitaremos de sudo:
$ sudo ln -s /home/ceec/juegos/pepino/pepino /usr/bin
Listo, ahora si escribo «pepino» en consola o en ALT+F2 se me abrirá el juego.
Tenéis otro ejemplo real de este tipo en la entrada siguiente, el tutorial de instalación de Thunderbird 2.0.
Más tips entre tuxes y pepinos |
http://www.masajespozuelo.es