viernes, 31 de enero de 2014

Trucos Ubuntu: Arrancar aplicaciones al inicio


A veces las cosas más tontas son las más complicadas de solucionar, y con esta máxima en mente me he decidido a publicar este vídeo, que a muchos de vosotros os parecerá una tontería pero que estoy seguro de que a más de uno le vendrá bien. ¡Que no nacemos "aprendidos", chavales!
El programa de lanzamiento de aplicaciones al inicio es una de esas pequeñas buenas ideas que tienen nuestros sistemas Linux. Mediante unos sencillos menús podemos arrancar cualquier programa que queramos al inicio de sesión, sin necesidad de intervención humana alguna. Pero ya lo anuncio en el vídeo: hay algunas cosas que pueden permanecer todavía en la oscuridad de lo desconocido, como por ejemplo el comando concreto que debemos utilizar para una aplicación determinada. 



En el vídeo propongo el método más simple que conozco para averiguar el comando que corresponde con cada aplicación: usar alacarte o cualquier otro programa que gestione los lanzadores de aplicaciones mediante una interfaz. En cualquier caso, si estáis interesados en conocer el verdadero funcionamiento de Linux, quizá os interese leer lo que viene a continuación. Ojo, lo que voy a contar es:
  1. Aburrido. Profundamente.
  2. Poco técnico: o sea, que tiende a ser erróneo proporcionalmente a la cantidad de líneas que le dedique.
Con lo cual es vuestra responsabilidad seguir leyendo y, más aún, creer en lo que digo. 

Antes de continuar, conviene hacer una precisión: la forma que tienen los sistemas basados en Unix (como Linux) de instalar y gestionar aplicaciones es radicalmente diferente de la forma que tienen los sistemas Windows. En estos últimos, los ficheros que hacen funcionar a una aplicación se guardan en una carpeta dentro del cajón de sastre llamado "archivos de programa", mientras que los controladores se guardan en otras carpetas de sistema, como "Win32", por ejemplo (creo que se llamaba así). En la carpeta de un programa encontraremos un montón de archivos de utilidad desconocida, y un fichero de extensión .EXE, que es el que lanza el programa en cuestión. 
Pues bien, en Linux la cosa es completamente diferente. Los programa "se integran" en el funcionamiento mismo de todo el sistema, compartiendo librerías (algo parecido a los controladores de Windows) entre ellos. De forma que no existe una carpeta donde se encuentren los ficheros de un programa dado: la información se centraliza, los programas comparten su ubicación y las librerías necesarias para ejecutarse. Esto es, de cara al funcionamiento del sistema y a la administración avanzada del mismo, algo muy útil y, sobre todo, ordenado; sin embargo, para el usuario de a pie, sobre todo cuando acaba de aterrizar en el mundo del piungüino, resulta demasiado esotérico y misterioso: "¿Dónde demonios está el ejecutable de tal o cual programa?" La respuesta es sencilla: tu, como usuario, no necesitas saber dónde está "el ejecutable" (lo entrecomillo porque hablando con propiedad, debería llamarlo "binario"); necesitas saber, como mucho, cómo se llama el comando que lo lanza, que es lo que un usuario quiere hacer: lanzar aplicaciones, no quedarse atontado mirando un fichero. De todas formas, ya sabéis que con Linux puedes hacer lo que te dé la gana, así que, efectivamente, estos binarios son accesibles si nos metemos en el proceloso mundo del árbol de directorios de sistema de Linux: el directorio raíz y sus subdirectorios, más conocido en los bajos fondos con el sobrenombre de  "raíz", "/" o "barra". Por cierto, no me digáis que "barra" no es un alias cojonudo. A mi me encantaría llamarme "barra", pero soy simplemente Juan. Ejem, perdón. 
Por si tenéis curiosidad, la mayoría de comandos de aplicaciones (ejecutables, sean del tipo que sean) se encuentran en alguna de las siguientes carpetas de sistema:
  • /bin: Contiene archivos ejecutables (binarios, de ahí el nombre de la carpeta) indispensables para el arranque y funcionamiento del sistema. Ojito con tocar nada aquí*. 
  • /usr/bin: Esta carpeta contiene los binarios de los programas instalados por un usuario. Esta es la carpeta donde teóricamente tendrían que estar todos los ejecutables de vuestras aplicaciones*.
  • /opt: Teóricamente esta carpeta se utiliza para guardar librerías opcionales de algunas aplicaciones (de ahí su nombre: "opt" de "optional"). De todas formas, algunos programas la utilizan, al estilo de lo que sería la caótica carpeta "archivos de programa" de los sistemas Windows. Por ejemplo, Chrome guarda ahí todos sus archivos. 
¿Aburridos? Os jodéis, os lo advertí. Y ahora que he pillado carrerilla, voy a seguir un rato más. Si nos metemos en la carpeta /usr/bin, tendremos un panorama como el siguiente:


Si os fijáis, hay unos cuantos iconos diferentes en esta carpeta... en realidad lo que veis es una mezcla de varios tipos de archivo: algunos son binarios, otros son scripts que llaman a otros binarios, y también hay "enlaces simbólicos". Estos últimos son otra pequeña genialidad de Linux: los enlaces simbólicos son archivos que "replican" a otros archivos; es decir, un enlace simbólico de un binario funciona exactamente igual que el binario al que replica, pero si lo borramos por accidente, el bineario original está intacto en su carpeta. "Coño, igual que un acceso directo de Windows", diréis, incautos. Nada más lejos. Lo bueno del enlace simbólico es que  si modificamos su contenido, el contenido del archivo original también se cambia: es como si estuviesen enlazados cuánticamente, los cabrones. Como os podéis imaginar, la cosa es un poco más complicada que todo esto, así que os recomiendo lecturas como esta o esta para haceros una idea. 
Poco más me queda por añadir, salvo una última cosa. Si a pesar de los pesares os queréis complicar la vida, también podéis crear entradas de comandos al arranque sin necesidad de una interfaz. Simplemente tendréis que editar el archivo ".config/autostart" (os recuerdo, la carpeta ".config" está oculta en vuestra carpeta de usuario, y se puede descubrir apretando CTRL y H al mismo tiempo con el navegador de archivos abierto en la carpeta de usuario) y editar las siguientes entradas con la información que corresponda (fuente de este dato, aquí):

[Desktop Entry]
Type=Application
Name=<Nombre de la aplicación>
Exec=<comando>
Icon=<ruta para el icono de la aplicación>
Comment=<comentarios opcionales>
X-GNOME-Autostart-enabled=true
Ahora sí que sí, esto es todo. No pensaba que el tema daría para tanto...

* NOTA: el funcionamiento de las carpetas /bin y usr/bin puede variar de una distro a otra (creo que en distribuciones basadas en Arch la cosa es un poco diferente). Como de costumbre, este artículo está dedicado específicamente a ubunteros novatos. 

Todos los contenidos de este blog se ofrecen de forma gratuita y se pueden distribuir libremente. Si piensas que lo merecemos, puedes hacer una donación para el mantenimiento de este blog (o tomarnos una caña a tu salud) haciendo clic en el siguiente botón: