Bug en script perl al intentar actualizar debian testing
Al intentar actualizar la librería libc6 en debian testing (wheezy) encontré un problema, el cual ocasionó que todo el sistema quede inestable. apt ciclaba arrojando el error:
Use of uninitialized value $text in concatenation (.) or string at /usr/share/perl5/Text/WrapI18N.pm line 101, line 5. substr outside of string at /usr/share/perl5/Text/WrapI18N.pm line 130, line 5.
Como el proceso no se detenía, la solución fue matarlo, pero dejando varias inconsistencias en el camino.Al parecer el script en cuestión tiene un bug con una variable sin inicializar, lo que ocasiona que el proceso de actualización falle.
Al quedar libc6 roto, muchos paquetes del sistema quedaron rotos y no es posible instalar ni borrar nada hasta que el problema no se arregle. Para salvar el problema y poder terminar la instalación, mi solución fue comentar la línea problemática (101 del archivo /usr/share/perl5/Text/WrapI18N.pm):
$text = $top2 . $c . $text;
Claro que si la línea esta ahí, para algo es, pero preferí tener un problema menor a tener un sistema que posiblemente al reiniciar no arrancaría.
Una vez comentada la línea hay que reparar los paquetes rotos, lo cual se realiza con:
apt-get install --fix-broken
Al haber matado el proceso apt, puede que algún proceso haya retenido los archivos de lock y que apt se reuse a actualizar. Si este es el caso, ejecutar fuser para obtener el id de los procesos que quedaron colgados, y luego matarlos:
fuser -v /var/lib/dpkg/lock
fuser -v /var/cache/debconf/config.dat
Con esto pude terminar la instalación de libc6 sin problemas y el sistema volvió a un estado estable. Según lo que encontré en diferentes foros, este es un bug del paquete perl y varios que han intentado actualizar lo han sufrido:
http://www.linuxquestions.org/questions/debian-26/error-configuring-libc6-898757/
http://www.facepunch.com/threads/1116926-Error-when-trying-to-dist-upgrade
Por ello me pareció interesante postear mi solución, que si bien no es elegante, me salvó de una reinstalación completa. Ojalá los salve a ustedes también!

0 comentarios:

Publicar un comentario