Backporting en Debian (I)
El término backport hace referencia a acciones efectuadas sobre versiones antiguas de un determinado software, tales como aplicar parches de seguridad; en nuestro caso se aplica a construir paquetes Debian en versiones anteriores a las que fueron construídos inicialmente.
Vamos a utilizar pbuilder para llevar el paquete ikiwiki de la versión unstable a la versión stable, aka Sarge.
Esta es una relación de enlaces y documentación en la que me he basado:
- http://www.debian-administration.org/articles/114
- http://pbuilder.alioth.debian.org/
- http://edseek.com/~jasonb/articles/pbuilder_backports/
- http://workaround.org/moin/HowToUsePbuilder
- https://wiki.ubuntu.com/PbuilderHowto
Primeros pasos
Instalamos los siguientes paquetes en la máquina en la que vamos a trabajar:
# apt-get install pbuilder fakeroot sudo devscripts apt-utils
En este caso, y siguiendo el último tutorial, vamos a hacer un uso intensivo del programa sudo, de manera que no tengamos que trabajar contínuamente como root. Un ejemplo de configuración válida para este programa sería el siguiente:
username ALL = /usr/sbin/pbuilder
siendo username obviamente sustituído por nuestro usuario. sudo nos pedirá nuestra contraseña la primera vez y la mantendrá durante unos quince minutos en memoria.
Conviene crear un pequeño programa que invoque la secuencia correcta, porque no suele ser habitual tener a /usr/sbin en la ruta de búsqueda de un usuario sin privilegios. Podemos guardarlo bajo $HOME/bin/pbuilder con algo como:
#!/bin/sh
sudo /usr/bin/pbuilder $*
Ajustando la configuración
El archivo /etc/pbuilder/pbuilderrc tendrá que ser modificado para trabajar cómodamente con él. Las siguientes son las opciones a tocar:
- MIRRORSITE=http://ftp.uk.debian.org/debian
- http_proxy=http://proxy.venexma.int:8080
- DISTRIBUTION=sarge
- DEBOOTSTRAPOPTS[0]=--arch=i386
- DEBOOTSTRAPOPTS[1]=--debug
- APTCONFDIR="/etc/pbuilder/apt.config/"
Los parámetros para debootstrap se deben a que estamos trabajando sobre amd64 y necesitamos que el paquete se construya para i386. Existe un apartado especial en la documentación que menciona que debe utilizarse linux32 y la opción --arch de debootstrap juntas de la siguiente forma:
$ pbuilder create --distribution sid --debootstrapopts --arch \
--debootstrapopts i386 --basetgz \
/var/cache/pbuilder/base-i386.tgz --mirror http://ftp.jp.debian.org/debian
$ linux32 pbuilder build --basetgz /var/cache/pbuilder/base-i386.tgz
También debemos ajustar las opciones de apt para que las use en la imagen: