"Después del juego es antes del juego"
Sepp Herberger

viernes, 5 de junio de 2015

Descomprimir, modificar y comprimir un paquete sencillo en Debian

Mi compañero Esteban Navas publicó hace poco un post para instalar plank en Debian Wheezy. Hacia tiempo que quería instalar un dock de ese tipo que fuera ligero y poco intrusivo para tener accesibles los enlaces mas comunes de los usuarios, ya que lo normal es que con el tiempo acaben borrados o escondidos entre  otros iconos del escritorio.

Junto con el paquete plank, Esteban ha construido un paquete plank-config con una configuración básica del dock, para colocar en el /etc/skel y copiar al home de todos los usuarios. Ambos paquetes pueden descargarse desde aquí.

Me interesaba coger el paquete plank-config y adaptarlo con los accesos directos que yo necesito, para luego volver a empaquetarlo. Hay varias herramientas para desempaquetar y reempaquetar un paquete .deb, la mas sencilla es dpkg-deb (otra mas potente y complicada es dpkg-buildpackage, que veremos en otro post mas adelante). Una vez descargado el paquete en cuestión plank-config_0.2_all.deb vamos a descomprimirlo en el directorio plank-config:
# apt-get install dpkg-deb
# dpkg-deb -R  plank-config_0.2_all.deb plank-config
# cd plank-config/

# ls -l
drwxr-xr-x 2 root root 4096 dic 16 17:18 DEBIAN
drwxr-xr-x 5 root root 4096 dic 16 17:18 etc
drwxr-xr-x 3 root root 4096 dic 16 17:18 usr

# tree
|-- DEBIAN
|   `-- control
|-- etc
|   |-- skel
|   |-- skel-alumno
|   `-- skel-profesor
`-- usr
    `-- share
        `-- doc
            `-- plank-config
                `-- changelog.gz

Para ver los ficheros ocultos (omito la salida ya que es enorme):
# tree -a 
....
....
....
En DEBIAN/control podemos cambiar el nombre del paquete en la instalación y la version. En los otros directorios podemos cambiar los ficheros que nos apetezca hasta adaptar el contenido de plank-config a nuestro gusto.
# cat DEBIAN/control 
Package: plank-config
Version: 0.2
Installed-Size: 1436
Section: gnome
Maintainer: Esteban M. Navas Martín <algodelinux@gmail.com>
Priority: optional
Architecture: all
Description: Configuración de Plank para IES
 Configuración de Plank con los accesos directos más comunes para el IES
La gente de orden lo que hacemos es editar el fichero control antes de nada para añadir comentarios de los cambios e incrementar la "Version". La sintaxis completa está en https://www.debian.org/doc/manuals/maint-guide/dreq.es.html#control

Una vez hechos los cambios, por ejemplo añadir un nuevo dockitem a etc/skel/.config/plank/dock1/launchers y en /.config/plank/dock1/settings, recomprimimos el paquete:
# dpkg-deb -b plank-config/ plank-config_0.3_all.deb
Este comando coge la información de DEBIAN/control y con eso y todo el contenido del directorio plank-config/* crea un paquete llamado plank-config_0.3_all.deb incluyendo los ficheros que hemos añadido/modificado/quitado.

A diferencia de otras herramientas dpkg-deb no necesita mas ficheros de metadatos que DEBIAN/control, por lo que si queremos crear un paquete desde cero simplemente tenemos que crear el fichero DEBIAN/control mínimo y añadir el resto de directorios y ficheros a instalar en ellos, comprimiendo finalmente todo con dpkg-deb -b.

Hasta pronto.....

No hay comentarios:

Publicar un comentario