Cómo compilar ese juego/programa que acabo de bajar

Supongamos que acabás de bajar el código fuente de tu juego o programa favorito y querés compilarlo para poder disfrutar de él. ¿Cómo realizar tan titánica tarea? No te preocupes, compilar e instalar ese juego/programa en Linux no es tan difícil como parece.

Procedimiento de compilación e instalación

Siempre que descargues el código fuente de un programa, éste vendrá comprimido dentro de un archivo que, en Linux, generalmente es de tipo tar.gz o tar.bz2. Claro, puede venir en cualquier otro formato (zip, por ejemplo), pero aquella suele ser la regla.

Así que, el primer paso es descomprimir ese archivo. El método más sencillo es abriendo Nautilus, haciendo clic derecho sobre el archivo en cuestión y seleccionando Descomprimir. El método que veremos aquí, no obstante, es aquél que utiliza el terminal.

Una vez descomprimido el archivo se creará un directorio, al que deberemos acceder y desde el cuál iniciaremos la configuración y compilación del programa.

Cuando hagas todo esto desde el terminal, los comandos a utilizar son:

tar xvzf paquete.tar.gz (o tar xvjf paquete.tar.bz2)
cd package
./configure
make
make install

Estos son los comandos que generalmente uno debe seguir, pero sería recomendable analizar en mayor profundidad cada uno de estos pasos, para entender bien qué implican.

Paso 1: descompresión

La extensión tar.gz o tar.bz2 significa que el código fuente que descargaste está comprimido dentro de un archivo tar, conocido también como tarball. Esto simplifica enormemente la difusión del código fuente ya que todos los archivos y carpetas que lo conforman se encuentran empaquetados dentro de un solo archivo. Una vez empaquetados, dentro del archivo tar, ese archivo es comprimido utilizando el algoritmo gz o bz2, dependiendo del gusto del desarrollador.

Para descomprimir un archivo tar.gz, escribí:

tar xvzf paquete.tar.gz

En caso de tratarse de un archivo tar.bz2:

tar xvjf paquete.tar.bz2

En la mayor parte de los casos esto creará una carpeta dentro del directorio donde se encuentre el archivo comprimido. El nombre de la carpeta será igual al del archivo comprimido.

Paso 2: configuración

Una vez que ingresaste a la carpeta creada al descomprimir el archivo tar.gz o tar.bz2…

cd carpeta

… es hora de configurar el paquete. Usualmente, aunque no siempre (por eso es importante leer los archivos README e INSTALL), esto se logra corriendo el script de configuración:

./configure

Cuando ejecutes este script, todavía no se va a instalar nada, sólo se verificará el sistema y se asigna valores a algunas variables dependientes del sistema. Estos valores son utilizados para crear un Makefile. El Makefile, a su vez, es utilizado para crear el archivo binario que, al final del cuento, permitirá ejecutar el programa.

Cuando ejecutes este comando vas a ver que la pantalla se llena de un montón de mensajes un tanto crípticos. En caso de error, aparecerá un mensaje; y si todo va bien, podemos saltar al siguiente paso. 🙂

Paso 3: construcción del binario

Llegó la hora de construir el archivo binario, que no es más que el ejecutable del programa. En otras palabras, este procedimiento implica la transformación de los archivos escritos en un lenguaje de programación de alto nivel a puros ceros y unos, o sea, el único idioma que nuestra compu entiende.

make

Para que este comando tenga éxito, el paso anterior debe haber salido bien. Sin el archivo Makefile, make dará error. Por eso es tan importante que el script de configuración se ejecute exitosamente.

Sí, la pantalla se llenará de mensajes extraños nuevamente y es probable que se demore un buen rato en terminar. Eso dependerá del tamaño del programa y de la velocidad de tu compu.

Paso 4: instalación

Claro, ya tenemos el ejecutable pero falta su instalación. Este paso es preciso hacerlo con privilegios de administrador.

sudo make install

Como en este caso hipotético no hemos realizado ningún cambio al archivo de configuración, el programa se instalará en la carpeta predeterminada. En general, esto suele ser /usr/local/bin ya que ello permite que desde cualquier lado al escribir el nombre del programa éste se ejecute (sin tener que ingresar la ruta completa del programa).

Paso 5: Ejecución

No, no matamos a nadie. Se trata simplemente del paso cúlmine de todo proceso de compilación e instalación. Para ejecutar el programa que con tanto esfuerzo convertimos en un binario, escribí:

./nombreprograma

Si el programa fue instalado en otra carpeta, diferente a /usr/local/bin deberás ingresar la ruta completa del programa.

Limpiando el rancho

En caso de que estés muy pero muy corto de espacio en disco, es posible que quieras borrar todos los archivos creados durante el proceso de construcción del binario. En ese caso, accedé a la carpeta creada al descomprimir el archivo y escribí:

make clean

Nota: asegurate de conservar tu Makefile. Ese archivo será necesario a la hora de desinstalar el programa en el futuro.

Desinstalación

El programa no era lo que esperábamos y queremos borrarlo de la faz de nuestro sistema. ¿Cómo? ¿El programa que acabo de instalar no aparece en el Centro de Software ni en Synaptic? ¿Y ahora?

En caso de que no hayas borrado tu Makefile, es posible desinstalar el programa fácilmente. Escribí el siguiente comando dentro de la carpeta creada al descomprimir el archivo:

make uninstall

Si tuviste mala suerte y la desinstalación no tuvo éxito, no quedará otra más que borrar los archivos a mano. Un verdadero dolor de cabeza. Para descubrir dónde se encuentran estos archivos, podés pegarle una mirada a tu Makefile.

En caso de haber borrado el Makefile, lo más recomendable es volver a instalar el programa, y luego hacer make uninstall, ya que así se regenerará el Makefile. No olvides instalarlo usando las mismas configuraciones (en este caso ninguna) en el ./configure.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Alex dijo

    Buen tuto muchas gracias, siempre cuando empezamos en linux uno de lo sprincipales problemas es como compilar, bien explicado, aunque si es recomendable leer los readme o install…

  2.   Alex dijo

    Buen tuto muchas gracias, siempre cuando empezamos en linux uno de lo sprincipales problemas es como compilar, bien explicado, aunque si es recomendable leer los readme o install…

  3.   Emiliano Perez dijo

    «Si tuviste mala suerte y la desinstalación no tuvo éxito, no quedará otra más que borrar los archivos a mano. Un verdadero dolor de cabeza»

    Es más recomendable volver a instalarlo, y luego hacer «make uninstall» ya que tendremos el Makefile re-generado. Importante instalarlo usando las mismas configuraciones (en este caso ninguna) en el configure.

  4.   Juan dijo

    ahora si no queres ejecutarlo poniendo el nombre del programa sino crear un acceso directo al escritorio o que te aparezca en el menu de aplicaciones, como haces?
    saludos!

  5.   Kiwi_kiwi dijo

    Buena tutorial. Ahora hasta yo puedo compilar.

  6.   Marcoshipe dijo

    creo que el segundo paso seria leer el readme (RTFR xD) y es el mas fundamental de todos, ya que muchos programas tienen dependencias que debes cumplir en la instalacion, o se necesita algun paso extra o tambien esta bueno que lo leas porque brinda buenas opciones para el make que nos puede llegar a interesar.

    saludos!

  7.   Usemos Linux dijo

    Completamente! Por eso recomiendo leer siempre los README e INSTALL.

  8.   Usemos Linux dijo

    Tenés razón. Eso, en caso de que no tenga el Makefile. Yo hablaba del caso en que aún teniendo el Makefile no pudiera desinstalarse por alguna otra razón.
    De todos modos, voy a agregar al post tu comentario, que me parece muy pertinente y acertado.

    Un abrazo y gracias x comentar! Pablo.

  9.   Usemos Linux dijo

    Tudo bem Krafty! Nadie se ofende. Escribí este post porque nunca había tratado el tema en el blog. De todos modos, tomo noto de los temas que recomendás (algunos muy buenos). Seguramente, voy a escribir sobre ellos en un futuro no muy lejano.
    Un gran abrazo y gracias x dejar tus comentarios! Pablo.

  10.   krafty dijo

    No quiero ser mala onda, pero este tema ya lo trataron varias veces en lo que va del año.

    Propongo unos temas para que vean que no dejo comentario solo para hacer bardo.

    – Telefonía sobre IP
    – Distintos Clientes Torrent (cual elegir).
    – Creación de scripts de aquellas cosas que lo hemos en forma repetida en la consola.
    – Quitar módulos al kernel para que inicialice mas rápidamente Linux al bootear.

    Espero no haber ofendido/molestado a nadie

  11.   invitado dijo

    genial, estupendo para los que nos empezamos a soltar con linux

  12.   Usemos Linux dijo

    Sí. Generalmente, estas vienen detalladas en el README. Caso contrario, al compilar saldrá error y en base al error (que dirá qué biblioteca falta) tendremos que instalar la dependencia apropiada.
    Un abrazo! Pablo.

  13.   Chelos dijo

    krafty,sos mala onda sin dudas. ¿dónde habías visto un tutorial como este, tan claro y explicativo? para mi es excelente, salu2,

  14.   rv dijo

    ¡Muchas gracias por la guía!, me ha servido para aclarar algunas cosas 🙂

    Por cierto, un tip que me ha funcionado bastante bien para resolver el tema de las dependencias es hacer antes que nada ‘sudo apt-get build-dep nombre_del_programa’; no sé si funciona en todas las distros, yo lo he usado en Debian (Squeeze, donde hace poco me compilé el MuseScore 1.2 para paliar un poco los repos arcaizantes del branch stable… 😉

    Imagino que alguien más informado podrá dar detalles más finos 🙂

    Saludos!

  15.   rosgori dijo

    ¿no habría que tener en cuenta las dependencias que necesita el programa antes de compilar?

  16.   DiegoGarcia dijo

    Tengo poco tiempo usando linux, y esto es una de mis mas grandes dudas, esto me sevira mucho ya que no habia encontrado algun post con este tema en particular 😀
    o ustedes conocen alguno?
    saludos..

  17.   marcos dijo

    genial, no habia visto este post, pero aque se debe eso de error tipo 1 o error tipo 2

  18.   ibon dijo

    ¿No hay otro metodo ?
    Este metodo ya lo he utilizado con exito. El problema es que hay muchos pero que muchisimos programas en codigo fuente que no usan ese sistema, vamos no tienen el script configure. Me gustaria como compilarlos.