domingo, 23 de noviembre de 2008

Repositorio de Debian casero.

A veces pasa que empaquetamos un programa que no está en los repositorios de Debian y queremos tenerlo a disposición dentro de la red local o en nuestro propio equipo, lo que es bastante sencillo.


Primero hay que asegurarse de que tener instalado apt-utils

# aptitude install apt-utils

nota:
Este paquete contiene algunas utilidades para APT como apt-ftparchive,
apt-sortpkgs y apt-extracttemplates.

Luego, creamos el directorio donde se va a alojar el paquete en nuestro servidor web y copiamos nuestro paquete dentro.

# mkdir -p /var/www/debian/lenny
# cp fooo-1-0-1-i386.deb /var/www/debian/lenny

nota:
En este caso puse lenny, porque es lo que uso, pero debería ser lo que este instalado en nuestro entorno.


La magia comienza acá

# cd /var/www/debian/
# apt-ftparchive packages lenny > lenny/Packages (1)
# gzip lenny/Packages (2)

1- Crea el índice de paquetes de nuestro repositorio en el archivo Packages (la p mayuscula es fundamental) y lo guarda en el directorio Lenny.
apt-ftparchive se ejecuta con los parametros packages o sources dependiendo si queremos generar el listado de paquetes binarios o fuente y el directorio que queremos indexar.
2- Se comprime con gzip para que apt pueda procesarlo.

Agregamos los clientes la nueva fuente.
# echo "deb http://www.ejemplo.com/debian lenny/ " > \
/etc/apt/sources.list.d/ paquetelocal.list

Eso es todo, por supuesto es un repositorio local y esta hecho con lo minimo necesario para funcionar, dependiendo de lo que queramos poner dentro, se puede agregar de igual manera las ramas main, contrib y non-free, certificados gpg, etc.

El empaquetado en debian (lo mas divertido) queda para mas adelante, pero lo mejor es empezar con el Manual de Politicas de Debian y este muy buen taller online que dío Margarita Manterola en el canal de irc Debian-ar