Debianizando Programas. Parte 1

por | 21 diciembre, 2007

Requisitos Previos A La Debianización

Hola, voy a empezar a escribir una serie de artículos sobre cómo debianizar programas que me van a servir de modo de apuntes. También espero que si alguien llega a leerlos le puedan servir. Estos tengo pensado que me ocupen tres artículos, que consistirán en:

  1. Requisitos previos a la debianización.
  2. Debianizando programas y utilidades que no poseen autotools o scons.
  3. Debianizando programas y utilidades que sí poseen autotools.

Los dos primeros artículos los tengo claros, el tercero es ciertamente jodido de aprender y no se cuándo lo escribiré :( Igual me hago viejo antes ;)

Bueno, empecemos con el asunto. Leyendo mucho y con ayuda de Daniel he llegado a la conclusión que lo primero es tener un esquema de aquello que necesitamos antes de debianizar, como instalación de programas o entender ciertos conceptos.

Para los que no lo sepan todavía, debianizar un programa es crear un instalador del programa, para que lo podamos instalar mediante un simple doble click izquierdo de ratón. Como el instalador tendrá como extensión de nombre .deb, abreviación de Debian, de ahí que al proceso de obtener dicho instalador se le suela llamar debianización. Para los que
vienen de windows el .deb es el equivalente al .exe de windows de los ficheros que se llaman Setup.exe. Los otros .exe que hay en windows son los ejecutables de los programas, y que en Linux suelen ser los de extensión .bin. Pero esto que acabo de decir no es del todo cierto, baste bajarse el instalador para linux de jdk6 que es un .bin pero es un instalador, además de ser un ejecutable; no se si me explico .

En cuanto a los programas a instalar he decidido que una buena forma de empezar es tener instalados los siguientes:

build-essential dpkg-dev file libc6-dev patch perl
autoconf automake dh-make debhelper devscripts fakeroot gnupg g77 gpc
xutils lintian cdbs pbuilder debian-policy developers-reference
manpages-es manpages-es-extra debian-reference-es

Todos ellos los podéis instalar de una tacada desde una terminal con apt-get install o aptitude install en modo superusuario. De todos ellos, el build-essential nos será necesario para poder compilar aquellos programas que requieran de ello para su instalación mediante los archiconocidos comandos:

./configure

make

sudo make install

Este paquete además nos será necesario para debianizar paquetes que trataré en el tercer artículo, ya que para convertirlos en .deb es preciso hacer previamente bien la compilación, por lo menos, hacer bien el configure.

Otro paquete a tener muy en cuenta es dpkg y dpkg-dev ya que nos servirán para convertir programas que no requieran de compilación en formato .deb, de esto se tratará en el segundo artículo.

Los paquetes linda y lintian son paquetes que nos servirán sobre todo para ver si hemos cometido errores en nuestra debianización. Me explico, es normal que podamos llegar a poder debianizar un paquete (obtener su .deb) pero que no sea correcto. Estos scripts nos ayudarán a depurar posibles errores, muy frecuentes son los errores de sintaxis. No os preocupéis, de esto ya hablaremos.

Como el artículo me puede salir demasiado largo os dejo la explicación de los demás programas en el siguiente enlace Yo tampoco entendí ni jota al leerlo por primera vez, pero conforme te vas metiendo en el fango empieza tu mente a esclarecer.

Una cosa que debemos de tener muy clara es saber cuáles son las dependencias, si las tiene, de los programas a debianizar. No sólo para su futura instalación si no también para su compilación. Para buscar cuáles son, más o menos, hay pautas a seguir:

  1. Leer los archivos README e INSTALL de los tar que nos hayamos bajado.
  2. Leer la documentación de la web oficial del programa a instalar.
  3. Si el programa a debianizar es una actualización de alguno que
    está en los repositorios oficiales de ubuntu, debian, guadalinex o
    cualquier distro basada en debian podemos consultar las dependencias
    desde el mismo Synaptic. Yo a veces me guio en ubuntu-packages.
  4. Para la compilación hay que tener en cuenta que si necesitamos un paquete X también necesitaremos el mismo paquete pero en su versión de desarrollo, es decir, el que se suele llamar X-dev
  5. Escribir desde la terminal ./configure –help

Estas son algunas de las pautas que yo sigo, si alguien tiene más soy todo oídos :D

Hay que tener muy claro que para debianizar programas, que en su instalación conlleva hacer la compilación, también la tendremos que hacer para su debianización. Para tener claro qué es compilar, lo resumo en pocas palabras:

  • Primero hacemos el configure, que consiste básicamente en comprobar
    qué tipo de arquitectura es nuestro Linux (i386, 64 bits, ppc ) y en
    ver que los paquetes que necesitamos para compilar los tenemos todos
    instalados. Además en el configure podremos especificar dónde se
    instalará nuestro programa con la opción –prefix =/directorio. También podremos habilitar o deshabilitar ciertas características del programa.
  • Después haremos el make, el cual es el paso de verdad. En este
    compilamos el programa, es decir; comprobamos si el código de nuestro
    programa posee errores o no. También se nos avisa de posibles warnings. Si no posee errores nos creará los
    correspondientes ficheros ejecutables.
  • El último paso es el make install, este básicamente lo que hace es
    pasar nuestros programas a los directorios de nuestro disco duro para
    poder tenerlo “instalado” en nuestro PC. Este paso lo omitiremos en la
    debianización, ya que cuando obtengamos nuestro paquete debianizado,
    será mediante éste último con el que instalaremos nuestro programa.

Repito que esto sólo es una muy somera explicación de lo que significa compilar un programa. Ya que faltaría explicar que relación hay entre este tipo de compilación y la que hacemos cuando escribimos el código de un programa.

Otra cosa a tener en cuenta, es que muchas veces tendremos que crear nosotros mismos los ficheros de acceso directo al programa. Por ejemplo, supongamos que debianizamos el programa Prism, nos lo bajamos y al descomprimirlo nos damos cuenta que no está el fichero para que nos aparezca su acceso directo en Aplicaciones->Internet ( en GNOME ).
¿Cómo lo hacemos? Pues creando un fichero que llevará la extensión .desktop en su nombre; para Prism sería prism.desktop. Este fichero lo podemos editar con gedit y sigue un esquema como el siguiente:

  1. [Desktop Entry]
  2. Encoding=UTF-8
  3. Name=Prism
  4. Comment=Prism
  5. Exec=/opt/prism/prism
  6. Icon=/opt/prism/chrome/icons/default/webrunner48.png
  7. Terminal=false
  8. Type=Application
  9. Categories=Application;Network;
  10. StartupNotify=true

Donde Name es el nombre del programa, Comment es el comentario del mismo,Exec es la ruta hacia el ejecutable del programa, Icon es la ruta hacia el icono que le asignaremos a nuestro programa por defecto (el cual cambiará automáticamente si cambiamos el tema de iconos), Terminal es donde especificamos si se abre por terminal o no (false/true, es un valor booleano ). Type donde queremos que aparezca en el menú, en este caso en Aplicaciones (hay que ponerlo en inglés). Las dos últimas opciones creo que están claras ;)

Cambiando de tema, otra cosa a tener en cuenta es que debemos saber el nombre del paquete, su versión y la arquitectura en la que lo instalaremos; ya que a parte de tener que especificarlo en el fichero control ( que ya veremos qué es) ; lo deberemos de especificar en el nombre del paquete debianizado. Así, para un programa cualquiera tendremos lo siguiente: sunombre_XXX_YYY.deb, siendo XXX su número de versión ( por ejemplo, 1.0.1 ) e YYY su arquitectura ( i386, amd64, all, ppc )

Otra cosa importante es saber que un buen sitio para instalar nuestros programas debianizados es en /usr/share o en /opt, siempre y cuando no sean oficiales o programas que deban estar en ciertos sitios específicos. Me explico, si queremos debianizar un tema de iconos debemos hacer que se instalen en /usr/share/icons y no en otro lugar, para que cuando vayamos a cambiar nuestro tema de iconos lo podamos cambiar desde Sistema->Preferencias->Apariencia, suponiendo
obviamente que nuestro tema de iconos es para GNOME.

Bueno, hasta aquí esta primera parte de debianización. Aclarar que son mis apuntes, para aclararme yo, y por eso no son rigurosos. Los apunto para mi y para compartirlos en la red con todos los demás.

Este artículo no se habría podido escribir sin la inestimable ayuda de Daniel Cremades, que pacientemente y por mensajero me ayuda a entender cómo debianizar. Muchas gracias pañero :)

Fuente->Debian

Saludos :)

Etiquetas:

13 pensamientos en “Debianizando Programas. Parte 1

  1. Cristobal

    Jeje, muchas gracias a los dos
    Pues la segunda parte espero poder escribirla mañana, pero la tercera
    Es que es muy jodida.
    Por cierto, hay un error de bulto nada más empezar, a ver si después de cenar lo arreglo. Cuando lo he editado esta mañana me ha dado muchos problemas, se me ha puesto la parte final del artículo en la parte superior Mira que soy manazas

    Saludos

  2. Cristobal

    Ufff… así esta mucho mejor. El error de bulto ya esta subsanado. Por favor, si veis algún error decídmelo
    Saludos

  3. Pingback: Blogging semanal XI

  4. Pingback: Debianizando Programas. Parte 3: Linux Music 2.0

  5. Pingback: Linux Music 2.0 - Debianizando Programas. Parte 2

  6. Pingback: Linux Music 2.0 - Videotutorial Debianizar Programas Sin Autotools

  7. Pingback: DiaRio De Un LiNuX3Ro » Videotutorial Debianizar Programas Sin Autotools

  8. Pingback: DiaRio De Un LiNuX3Ro » Al fin, ¡Libre!

  9. Pingback: Creando Accesos Directos (Avanzado)

  10. Pingback: Linuxeando & familia - Creando Accesos Directos (Avanzado)

  11. Pingback: Debianizar Paquetes Precompilados Con CDBS « Linux Music 3.0

Los comentarios están cerrados.