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

martes, 12 de enero de 2016

debmirror deja de funcionar con wheezy-backports

En esta entrada contaba como crear unos mirrors de wheezy-backports y otros repositorios en nuestra red local para permitir una instalación y actualización más rápida de paquetes.

Hoy me he dado cuenta de que hacía al menos 15 días que no se sincronizaba el mirror de wheezy-backports y por tanto tampoco los equipos que se actualizaban desde él, provocando un fallo en pkgsync que acaba interrumpiendo todas las actualizaciones. Lanzando el comando debmirror a mano:
# debmirror -v --getcontent /var/www/mirrors/backports-wheezy/  --timeout=1200 \
--ignore-missing-release --ignore-release-gpg --passive --nosource --rsync-extra=none \
--arch=i386,amd64 --ignore=disks-i386,amd64/ --section=main,contrib,non-free --method=http \
--host=ftp.es.debian.org --dist=wheezy-backports --root=debian
se empezaba a descargar algo pero a los pocos segundos quedaba congelado sine die, sin avanzar nada. Para otros repositorios si que funcionaba debmirror, pero probando para wheezy-backports desde otras redes (para descartar si era problema de mi red) también fallaba.

Después de estar un rato dando vueltas como pollo sin cabeza mi compañero Ricardo me ha dado la solución: añadir el parámetro "--diff none", de tal forma que queda:
# debmirror -v --getcontent /var/www/mirrors/backports-wheezy/  --timeout=1200 \
--ignore-missing-release --ignore-release-gpg --passive --nosource --rsync-extra=none \
--arch=i386,amd64 --ignore=disks-i386,amd64/ --section=main,contrib,non-free --method=http \
--host=ftp.es.debian.org --dist=wheezy-backports --root=debian --diff=none
O modificando el script de creación del mirror, quedando:
#! /bin/sh

debug="$@"
arch=i386,amd64
base=/var/www/mirrors
.....
.....
destdir=$base/backports-wheezy
dist=wheezy-backports
section=main,contrib,non-free
allopt="$debug --timeout=1200 --ignore-missing-release --ignore-release-gpg --passive --nosource --rsync-extra=none --arch=$arch --ignore=disks-$arch/ --section=$section --method=http"
defopt="$allopt  --host=ftp.debian.org --dist=$dist --root=debian --diff=none"
debmirror -v --getcontent $destdir/ $defopt
La causa, según cuenta Ricardo, es que para no se tenga que descargar el Packages entero por pequeñas modificaciones hay repositorios que usan archivos diff, conteniendo sólo los últimos cambios. Este método ha dejado de funcionar bien con debmirror, pero con diff=none le dices que ignore dichos archivos diff. ¡Gracias, Ricardo!.

Lo que voy a echar de menos los mirrors cuando los Windows que nos quiere poner la Junta de Extremadura empiecen a actualizarse de forma masiva en los centros educativos. Será la fiesta del bit. Aunque siempre podemos, como sugirió algún iluminado, desactivar las actualizaciones. Entonces será la superfiesta.

Bueno, pues ahí queda eso.

No hay comentarios:

Publicar un comentario