Debianizando Programas. Parte 2

por | 25 Diciembre, 2007

Debianizando Programas Y Utilidades Sin Autotools

O Scons


Hola, vamos con la segunda parte de debianizar programas. En este caso trataremos el caso de cómo debianizar programas y utilidades que para su instalación no requieren hacer previamente una compilación para instalarlos.
Entre estos programas podemos encontrar los navegadores como Firefox, Netscape, Flock, etc. También podemos encontrar programas como Eclipse, EasyEclipse, Prism, Thunderbird, etc. Además podemos debianizar fácilmente también temas de iconos, de GDM, de Themes para GNOME, etc. Hay que tener una cosa clara, y es que el hecho de no requerir una compilación no implica necesariamente que no tengamos que conocer sus dependencias para debianizarlos. Por ejemplo, Azureus Vuze requiere la dependencia de sun-java5-jre para que funcione.
Para escribir este artículo nos apoyaremos como ejemplo en debianizar el programa Prism. Lo primero que haremos es descargar el programa a debianizar, normalmente vienen empaquetados en formato tar. Podéis descargar Prism de Aquí.
Una vez descargado nos vamos a crear una carpeta genérica en la que iremos metiendo los programas que queremos debianizar. La carpeta la crearemos en nuestro directorio personal, en mi caso el directorio personal se llama crislosi; y la carpeta genérica la he llamado EMPAQUETADOS (la podéis llamar como queráis). Dentro de esa carpeta crearemos otra carpeta con un nombre que identifique al programa que queremos debianizar, para Prism le voy a llamar prisma (llamarle como os de la gana). Resumiendo, tenemos por ahora la siguiente ruta de carpetas o directorios creados:

/home/crislosi/EMPAQUETADOS/prisma/

Fácil, ¿no?. Ahora dentro del directorio o carpeta prisma vamos a crear las carpetas en donde quedará guardado nuestro programa cuando se instale. Aquí tenemos dos posibles formas para hacerlo:

  1. Crear la ruta /usr/share
  2. O crear la ruta /opt

Podemos escoger la que queramos, yo por comodidad, como Prism no viene en los repositorios he optado por /opt. Pero si nuestro programa es alguno que viene ya en los repositorios oficiales de Ubuntu recomiendo la ruta /usr/share.
¡ATENCIÓN! si lo que queremos debianizar es un paquete de iconos es obligado que la ruta que creéis sea /usr/share/icons si son un tema de iconos para GNOME. Igualmente, si lo que vas a debianizar es un GDM deberás crear la ruta exacta de los gdms. Un buen truco para saber qué ruta es la correcta es abrir Synaptic, en Configuración->Preferencias habilitar la opción “Mostrar las propiedades del paquete en la ventana principal”. Buscar un paquete de iconos o lo que vayáis a debianizar y en la pestaña “Ficheros Instalados” podréis ver la ruta exacta de dónde deberán estar instalados.
Volviendo pues a nuestro ejemplo y como he decidido escoger la opción 2 mentada arriba, tendremos creada la siguiente ruta de directorios:

/home/crislosi/EMPAQUETADOS/prisma/opt

Ahora dentro del directorio /opt que acabamos de crear descomprimimos el fichero que nos hemos descargado. Todo esto lo podéis hacer fácilmente con nautilus y el típico Copiar y Pegar, no hace falta utilizar la terminal para ello. Acordaros de si tenéis el programa comprimido a instalar guardado dentro de /opt de borrarlo una vez lo hayáis descomprimido. Bien, en nuestro caso de Prism se nos ha creado una carpeta llamada “prism”, así pues tenemos:

/home/crislosi/EMPAQUETADOS/prisma/opt/prism

Ahora viene un paso fundamental hacerlo bien, y es el de crear la carpeta o directorio DEBIAN donde corresponde. La carpeta DEBIAN la crearemos en la ruta

/home/crislosi/EMPAQUETADOS/prisma

Fijaros que debe ir dentro del directorio prisma pero fuera de los directorios en que se instalarán los programas a debianizar que he especificado en las dos opciones anteriores y que en nuestro ejemplo es el /opt. Una cosa muy importante es que la carpeta DEBIAN debéis llamarla en mayúscula en la totalidad de su nombre, no en minúsculas.
Volviendo pues a nuestro ejemplo de Prism tenemos las dos rutas siguientes:

/home/crislosi/EMPAQUETADOS/prisma/opt
/home/crislosi/EMPAQUETADOS/prisma/DEBIAN

Bien, dentro del directorio DEBIAN vamos a crear el fichero que llamaremos “control” (en minúsculas y sin extensión alguna en su nombre). Lo podemos crear fácilmente con gedit.
Para Prism tenemos el siguiente control

  1. Package: prism
  2. Version: 0.8
  3. Architecture: i386
  4. Maintainer: Tobal
  5. Depends:
  6. Section: guada-users
  7. Priority: extra
  8. Description: Programa para internet
  9. Aplicacion que nos permite crear accesos directos a aplicaciones como gmail
  10. Homepage: http://starkravingfinkle.org/blog/

Este control os puede servir como plantilla para otras debianizaciones. Paso a explicaros cómo es su estructura.

  • En Package ponemos el nombre del programa, en éste caso prism
  • En Version ponemos la versión del programa a debianizar, la nuestra es la 0.8
  • En Architecture especificamos la arquitectura en la que esta soportada el programa, que puede ser: i386, amd64, ppc, all. Yo he elegido i386 para prism, así si alguien intenta instalar Prism desde GDebi en un Ubuntu de 64 bits le saldrá el mensaje de arquitectura no soportada y no lo podrá instalar. Si ponemos “all” no habrá problemas.
  • En Mainteiner ponemos nuestro nombre y correo electrónico.
  • En Depends debemos poner los paquetes de los que depende para que funcione. Como no depende de ninguno lo dejo en blanco. Pero para Azureus le puse que dependía de sun-java6-jre
  • En Section especificamos la sección en la que aparecerá en Synaptic, como no hay problemas aquí podemos crear una nueva, en éste caso le he llamado guada-users.
  • En Priority hemos de especificar su prioridad, como es un paquete no soportado oficialmente por Ubuntu y Debian le he puesto extra.
  • En Description ponemos una descripción corta del programa y en la línea siguiente otra un poco más larga (dejar un espacio en blanco al principio de la segunda línea y no pongáis acentos que salen feos)
  • En Homepage hay que poner la web del creador del programa.

Quiero aclarar una cosa importante en la sección Depends, es que si el programa depende de más de un paquete y de a partir de una versión específica la nomenclatura a seguir es, por ejemplo; para dos paquetes:

Depends: paquete1(>versionpaquete1), paquete2(>versionpaquete2)

En el fichero control podemos especificar más secciones, pero para el caso de debianizar programas sin autotools o scons no son muy importantes ni necesarios; con estos funciona bien.

Pues bien, hasta aquí ya lo tenemos en principo casi todo, pero muchos programas no nos vienen con un acceso directo para ejecutarlos, es el caso de Prism; así que vamos a crearlo. Para ello crearemos la ruta de carpetas /usr/share/applications dentro de la carpeta prisma, tendremos pues las tres rutas siguientes:

/home/crislosi/EMPAQUETADOS/prisma/opt
/home/crislosi/EMPAQUETADOS/prisma/DEBIAN
/home/crislosi/EMPAQUETADOS/prisma/usr/share/applications

Dentro de la tercera ruta crearemos con gedit el fichero lanzador de la aplicación, y le llamaremos nombreprograma.desktop, en nuestro caso prism.desktop y tendrá el siguiente contenido:

  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

La explicación de estos ficheros Pinchando Aquí
Ahora que ya lo tenemos todo tan solo nos queda crear el fichero md5sum. Para ello abrimos terminal y nos situamos en la ruta correcta, en nuestro caso:

/home/crislosi/EMPAQUETADOS/prisma

En la terminal escribimos la siguiente orden:

find . -type f -print0 | xargs -0 md5sum > md5sums

Ahora abrimos con gedit md5sums y hacemos lo siguiente: borramos las líneas que hacen referencia al fichero md5sums y al directorio DEBIAN. Después desde gedit en Buscar->Reemplazar cambiamos los ./ por / y lo guardamos. Finalmente lo movemos a la carpeta DEBIAN. Es aconsejable que este fichero lo hagáis cuando lo tengáis todo listo, si os equivocáis en algún paso anterior deberéis volver a crear desde cero el md5sum.

Y ahora el paso final, crear el paquete .deb con la herramientas dpkg y fakeroot, seguiremos la siguiente nomenclatura generalizada:

  1. fakeroot dpkg-deb -b ruta_de_lo_que se_empaqueta ruta_donde_guardar_lo_empaquetado/nombre_del_fichero_empaquetado.deb

Para Prism será:

  1. fakeroot dpkg-deb -b /home/crislosi/EMPAQUETADOS/prisma/ /home/crislosi/EMPAQUETADOS/prism_0.8ubuntu_i386.deb

Fijaros bien en las rutas porque sino os puede pasar que en el fichero.deb creado os guarde dentro el mismo fichero .deb. Recordad que un .deb no es mas que una forma de empaquetar (comprimir) ficheros que podemos descomprimir con FileRoller.
La instrucción dpkg se debe hacer sin permisos de root, y la opción -b es una abreviación de build (construir) para que nos construya el paquete. Si ponemos -i nos lo instalará.
Para saber cómo llamar a nuestros paquetes debianitas AQUÍ

Pues bien, tan sólo nos queda instalarlo con GDebi y probar si funciona
El fichero de Prism debianizado os lo podéis descargar de AQUÍ

Fuente->OcioLinux para Prism
Fuente->Blog del creador de Prism
Fuente->Debian

Saludos

Etiquetas:

4 pensamientos en “Debianizando Programas. Parte 2

  1. Avería

    Genial Cristóbal, este fin de semana probaré el tutorial que has escrito a ver que me sale, gracias por el trabajo realizado

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

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

  4. Pingback: Mis Tribulaciones Con Unos Scripts

Los comentarios están cerrados.