Cada día, cientos de usuarios noveles de GNU/Linux acuden al código fuente de los programas sin ser conscientes de que es completamente innecesario. Veremos paso a paso cómo podemos evitar llegar hasta tal situación. Para ello, a modo de ejemplo, intentaremos instalar Neverball.
Podréis decir: «Un momento, ¡el título del artículo es engañoso, no nos va a enseñar a compilar nada!». Tranquilos, al final daré unas directrices muy básicas sobre cómo podéis llegar a compilar exitosamente un programa, pero primero creo que debo transmitir la idea de que este paso suele ser innecesario y puede ser evitado la mayoría de las veces.
Volvamos al Neverball. Imaginad que acabamos de encontrar su página web. Si accedemos a su sección de descargas encontramos únicamente la versión para Windows, para Mac Os X y el código fuente. Está bien, si todo lo demás falla todavía podemos recurrir a compilarlo utilizando este código fuente, pero primero probemos las alternativas más humanas.
El primer paso es buscar en el instalador de nuestra distribución. Por ejemplo, en el caso de la última versión de Ubuntu, en el Centro de software de Ubuntu, o en Fedora en la opción de Añadir/Quitar software. Como vemos, lo encontramos sin mayor problema y con un par de clics podemos instalarlo y ponernos a jugar.
Imaginad que hemos fracasado. ¿Debemos recurrir ya a la ardua tarea de compilación? No. Las distribuciones y su comunidad suelen proveer también otros canales de distribución. En Ubuntu por ejemplo tenéis los Personal Package Archives (PPA). Una búsqueda rápida nos devuelve resultados, por lo que solo debemos elegir uno de ellos, añadirlo a nuestros orígenes de software y proceder a la instalación de la misma forma de antes.
Volved a imaginar que el paso anterior no ha servido de nada, y que seguimos sin encontrar resultados. Entonces todavía podemos acudir a sitios de terceros, como por ejemplo GetDEB. Es bastante menos seguro, pero si no queda otra alternativa y el sitio parece confiable seguramente no haya problemas.
Si todo esto fallase, puede que el momento de compilar haya llegado. A mí no se me ocurren más alternativas, desde luego. Así que volvamos a la página de descargas a por el código fuente.
Lo primero que debemos hacer tras descomprimirlo es buscar los archivos README e INSTALL. Seguramente en uno o en otro estarán las instrucciones específicas para la compilación e instalación.
Como vemos, tiene muchísimos requisitos. Lo que debemos hacer es instalar todos los paquetes de desarrollo que satisfagan esos requisitos. Algunos autores nos lo ponen fácil apuntando directamente al nombre de los paquetes que debemos instalar, pero no es el caso. Para este juego en concreto, en Ubuntu bastará con poner en una terminal:
sudo apt-get install libsdl1.2-dev libsdl-ttf1.2-dev libvorbis-dev libpng12-dev libjpeg-dev build-essential libphysfs-dev
Cuando termine se supone que ya hemos satisfecho lo requisitos (o al menos eso creemos). Ahora deberíamos ejecutar un script que configure la compilación. Este script nos avisará si nos falta algún requisito.
./configure
En el caso de Neverball, no se incluye ningún script de este tipo, por desgracia. Siguiendo las instrucciones, vemos que debemos ejecutar make para comenzar la compilación.
make
Entonces comenzará el proceso, algo que puede llevar desde unos segundos a varias horas, dependiendo de muchísimos factores. Una vez haya terminado, todavía queda instalarlo. Esto se hace, habitualmente, escribiendo:
sudo make install
El problema de este proceso es que no está pensado para usuarios finales. No es tan sencillo explicar en la brevedad que pretende este artículo todas las posibles causas que pueden hacer que una compilación falle. En ese casi, lo más probable es que os falte alguna biblioteca, pero seguramente acabaríamos antes examinando cada caso particular antes que dando instrucciones detalladas sobre cada posible error.
Todos los que os habéis enfrentado a la compilación de un paquete sabéis más o menos a lo que os exponéis. ¿Tenéis algún consejo para los usuarios noveles de GNU/Linux que se encuentran por primera vez ante una compilación? Si tenéis dudas sobre el proceso también podéis utilizar los comentarios para completar el artículo.