24
Dic
07

Compilar programas en Arch e instalarlos (segunda parte)

A continuación les dejo la segunda parte del artículo. Si le gustó el primero, debe leer el segundo… Y si no… No no más pues.

Como mencioné en el post anterior, es bueno tener cierto conocimiento acerca de unos conceptos. Continúo con ello.

PKGBUILD. Como mencioné anteriormente, corresponde a un archivo de texto con las instrucciones necesarias para compilar un programa desde su código fuente y dejar el paquete listo para ser instalado mediante pacman. Los archivos PKGBUILD tienen un campo que especifica desde dónde bajar el código fuente, por lo que sólo se necesita éste archivo y todo el proceso debiese efectuarse automáticamente (nuevamente si los astros están alineados y todo eso). Un ejemplo de estos archivos se encuentra en la wiki de Arch y lo puedes ver aquí. Otra explicación de las variables que se usan en el archivo también pueden encontrarla aquí. Como están en inglés voy a nombrar las que me parecen relevantes:

  • pkgname: el nombre del paquete
  • pkgver: versión del paquete
  • pkgdesc: descripción del paquete
  • arch: la arquitectura de software en la que se sabe que funciona el programa (procesador, cantidad de bits 32 vs 64)
  • url: especifica la web asociada al programa
  • license: la licencia bajo la que se distribuye el software
  • depends: dependencias que necesita el programa para funcionar
  • makedepends: dependencias necesarias para compilar el programa (pero que no son necesarias una vez que éste está instalado)
  • conflicts: paquetes que producen conflicto si están instalados al mismo tiempo que el paquete que queremos compilar e instalar
  • install: especifica un archivo anexo que se debe utilizar para la instalación (se debe revisar cuidadosamente dicho archivo para verificar que es seguro)
  • source: dirección desde donde se debe descargar el código fuente del programa
  • md5sums: especifica una llave de comprobación de la integridad del código fuente descargado (o sea, verifica que no se haya bajado con errores)

Bueno, son CASI todas las que aparecen. Revisen los links para más detalles. Otro aspecto relevante corresponde a la función build() que se declara en cada PKGBUILD. Dicha función es la que específicamente se encarga de compilar el programa. Detalles con respecto a esta función se pueden ver aquí. Difieren para cada programa, pero básicamente se trata del ./configure, make y make install habitual junto a otras instrucciones.

makepkg. Corresponde a la herramienta de la que dispone Arch para compilar los programas. Básicamente se encarga de leer los PKGBUILD y ejecutarlos, de modo de obtener un paquete listo para ser instalado por pacman (info más detallada en la wiki de Arch). Un link tipo tutorial acerca de makepkg/abs (en inglés) puede ser visto aquí.

Creo que con respecto a los conceptos, eso es suficiente. Ahora vamos con lo que en realidad nos interesa, compilar e instalar (en base a un PKGBUILD ya hecho).

Luego de la frase anterior, creo que acabo de perder rating, pero compréndase que soy un simple usuario… En todo caso, para crear el PKGBUILD, más específicamente la función build(), se debe recurrir a la web del programa que se desea instalar, donde debiesen estar las instrucciones detalladas. Como dije anteriormente, es más o menos hacer eso del ./configure, make y make install, pero puede diferir para cada programa.

OK, continuemos. Si disponemos del archivo PKGBUILD y todos los necesarios (como podría ser un eventual archivo INSTALL u otro por el estilo), creamos una carpeta que será donde compilaremos y construiremos el paquete. Allí debemos guardar todos los archivos pertinentes y sólo ellos. Si estamos trabajando con algún paquete bajado del AUR, basta con descomprimirlo (el archivo tarball) y trabajar en esa carpeta. Ahora, mediante consola (obvio) nos situamos en la carpeta donde compilaremos y ejecutamos makepkg, herramienta que buscará el archivo PKGBUILD en la carpeta donde se ejecutó y seguirá las instrucciones contenidas en él. En este paso asumo que usted tal como yo, no modificó los archivos de configuración de ABS ni makepkg ni nada por el estilo, por lo que estará en condiciones de realizar esta operación sin problemas. Eso sí, debe asegurarse de tener instalado fakeroot de modo que pueda ejecutar el comando como usuario normal (altamente recomendado). Esto es importante, ya que si ejecuta makepkg como root se pueden obtener “resultados inesperados”. Como he querido dejar en claro a lo largo de los artículos, ejecutar indiscriminadamente comandos como root no es saludable. En nuestro caso, no podemos confiar a ciegas que los PKGBUILDs y los INSTALLs y todas esas cosas correspondan a archivos seguros. Esto no necesariamente porque a priori creamos que alguien nos quiere hacer daño, sino que quien haya subido los archivos al AUR es una persona tal como nosotros y pudo haber cometido un error que quizás haga daño a nuestra distro por ejemplo.

Bien, cuando uno ejecuta makepkg como usuario normal, haciendo uso de fakeroot (para ello, hay que asegurarse que en el archivo /etc/makepkg.conf, donde dice BUILDENV, “fakeroot” no tenga un signo de exclamación “!” delante), uno se asegura sólo de darle los permisos de root necesarios a nuestro usuario para compilar el paquete de modo que si por algún motivo se intenta modificar una parte prohibida del sistema, esto no se realice, manteniendo la integridad de la distro y su buen funcionamiento (cabe mencionar aquí que si ejecutan el mismo comando como root, éste super usuario tiene todos los permisos por lo que ejecutará todas y cada una de las instrucciones sin importar sus resultados, por más destructivos que estos sean).

Si no obtuvo ningún error al ejecutar makepkg, entonces estamos en tierra derecha. Esto, pues al parecer todo resultó como esperábamos y si es así, debiésemos tener en nuestra carpeta de compilación un archivo .pkg.tar.gz con el nombre del paquete (y la versión me imagino). En este punto, lo único que resta es instalarlo con pacman mediante la instrucción

$ pacman -U <nombre_paquete>

donde <nombre_paquete> es el del archivo .pkg.tar.gz recién creado. Este paso es igual que instalar un programa mediante los repositorios, por lo que se debe ejecutar como root.

Espero que haya quedado suficientemente claro. Para los que saben inglés, la guía sirve como un índice acerca de lo que deben leer (no me gasté por nada llenando de links el texto). Para los que no, ojalá sea suficientemente autocontenida.

Cualquier duda o corrección (lo que he escrito no necesariamente es totalmente exacto), sírvase a escribir en los comentarios. En la medida que pueda ayudar, lo haré.


5 Responses to “Compilar programas en Arch e instalarlos (segunda parte)”


  1. 1 Ajeo
    enero 15, 2008 a las 2:58

    Buen tutorial…muchas gracias…lo probare…quiero instalar cgmail…


Comments are currently closed.

buscar en el blog

calendario de posts

diciembre 2007
L M X J V S D
    Ene »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Contacto

Siéntase libre de escribir a contacto También puede encontrarme en Last.fm, YouTube, Delicious y Twitter.

A %d blogueros les gusta esto: