Archive

You are currently browsing the Jose Antonio Cely Saidiza blog archives for .

MONTANDO UN REPOSITORIO LOCAL DEBIAN ETCH A PARTIR DE LOS DVDS

By Jose Antonio Cely Saidiza


Hace poco tuve la desgracia de no tener internet en casa… es de las peores cosas que me han pasado, prefiero que me corten el agua, esa la puedo mendigar en cualquier casa, recordemos que un vaso de agua no se le niega a nadie :D …
Ante la imposibilidad de no tener internet, tenia que seguir trabajando en algunas cosas cuando estuviera en casa y gran parte del trabajo es instalar Debian y configurar paquetes, entonces pronto me insole de andar con los 3 DVDs que componen Debian Etch para arriba y para abajo, fue cuando me decidí por montar mi repositorio local en el firewall de la casa, es un pentium III de 750Mhz, que tiene subversion, apache2, hace nat y ahora un repositorio local :D !.
Este no el método oficial, es mas practico y en Debian esta bastante documentado como hacer mirrors con rsysnc entre otras virguerias, si tenemos internet bastante rapido es mejor hacerlo de esta manera, esta forma que documento a continuación es para cuando tenemos una pésima conexión a internet (o como me sucedió, nula conexión :D ).

MONTANDO UN REPOSITORIO DEBIAN DESDE LOS CDROM/DVDS

Es una labor muy sencilla, solo necesitamos una maquina en nuestra red con un servidor web apache funcionando correctamente, y una partición que al menos tenga 15Gb de espacio libre (recordemos que son 3 DVDs, cada uno de 4.4Gb) y obviamente los DVDs de Etch. Eso si es una labor de paciencia (sobre todo si tenemos hardware viejo para el servidor) por que el proceso de la copia de 3 DVDs y el escaneo final de los paquetes es demorado!.

Describiré los paths que use en mi cofiguración, debéis acomodarte a los vuestros.

Directorio donde copiare los paquetes (al menos 15Gb libres)
/mnt/hdc1/
Directorio donde accedo a la unidad de DVD
/cdrom
Directorio de el contenido web de apache
/var/www/

Empezamos creando un directorio para los paquetes
mkdir /mnt/hdc1/myrepo

Me paso a raíz
cd /

Monto el DVD1
mount /dev/cdrom

copio paquetes del primer DVD
cp -R /cdrom/dists/ /mnt/hdc1/myrepo/
cp -R /cdrom/pool/ /mnt/hdc1/myrepo/

Desmonto el DVD1
umount /dev/cdrom

Monto el DVD2
mount /dev/cdrom

copio paquetes del segundo DVD
cp -R /cdrom/dists/ /mnt/hdc1/myrepo/
cp -R /cdrom/pool/ /mnt/hdc1/myrepo/

Desmonto el DVD2
umount /dev/cdrom

Monto el DVD3
mount /dev/cdrom

copio paquetes del tercer DVD
cp -R /cdrom/dists/ /mnt/hdc1/myrepo/
cp -R /cdrom/pool/ /mnt/hdc1/myrepo/

Desmonto el DVD3
umount /dev/cdrom

Borro estos archivos
rm -rf dists/etch/main/debian-installer/
rm dists/etch/Release

Me paso al directorio de los paquetes
cd /mnt/hdc1/myrepo/

Escaneo y comprimo paquetes (main)
dpkg-scanpackages pool/main/ /dev/null > dists/etch/main/binary-i386/Packages
gzip dists/etch/main/binary-i386/Packages

Escaneo y comprimo paquetes (dists)
dpkg-scanpackages pool/contrib/ /dev/null > dists/etch/contrib/binary-i386/Packages
gzip dists/etch/contrib/binary-i386/Packages

Hago un link simbólico a mi servidor web (Este paso se puede obiar si estamos trabajando directo en la carpeta del servidor web o configuramos a apache para que acceda directo a nuestro directorio)
ln -s /mnt/hdc1/myrepo/ /var/www/debian/

listo!

Si todo es correcto podremos acceder a nuestro servidor vía web, y confirmar que todo funciona.

En los clientes solo es editar el archivo /etc/apt/sources.list y poner la url a nuestro servidor.

deb http://192.168.0.1/debian/ etch main contrib

Ejecutamos el comando

apt-get update

Y vola!

Recomiendo tener un servidor local. En mi caso, que me la paso solo trasteando con cacharros e instalaciones constantes es mas rápido, solo uso el CDROM de 140 megas de Debian Etch, instalo la base y en el repositorio le pongo la url de mi repositorio local y listo todo lo descargo desde mi red local, aparte de liberar de mi minuscula carga a los servidores oficiales :D.
Que pasara el día que publiquen una actualización? Sencillo, descargo/copio/pidoprestados/compro los DVDs, los vuelo a copiar y a ejecutar los dpkg-scanpackages.