Sometimes it’s necessary to move from stable (squeeze) to testing (wheezy) for newer packages not being covered by backports. Please note that security updates are available for testing too. The easy way would be
* edit /etc/apt/sources.list and replace squeeze by wheezy
* apt-get update && apt-get dist-upgrade
Using the codenames instead of whatisit will make sure that you will stay on wheezy when it becomes the stable release.
Currently, there’s a problem in the Debian tree with libc6 and perl transition from 5.10 to 5.12. This brings in infite loop of 2 error lines on the screen.
Setting up libc6 (2.13-18) ... substr outside of string at /usr/share/perl5/Text/WrapI18N.pm line 130,line 5. Use of uninitialized value $text in concatenation (.) or string at /usr/share/perl5/Text/WrapI18N.pm line 101, line 5.
To resolve this, bring the process in the background and manually kill it.
Ctrl^Z [1]+ Stopped apt-get upgrade -f
# ps aux | grep apt-get # kill -9 PID [1]+ Killed apt-get upgrade -f
Manually remove those locks – be careful!
# rm /var/lib/dpkg/lock # killall -9 frontend
Now for the fun part – fixing the perl lib causing this (source).
# vim /usr/share/perl5/Text/WrapI18N.pm :130 - $r = substr($string, $l); + if (length($text) < $l) { + $r = ''; + } else { + $r = substr($string, $l); + }
# killall -9 frontend # dpkg --configure -a # apt-get upgrade -f
Voilà - you can also run dist-upgrade again. After installing the newest Perl revision, this change will be overridden and the upgrade should work again.
Thank you very much for this information, although I don’t know why you put “killall -9” at the end of your commands…
That’s what happens when you use testing 😉 I tend to forget that…
Bye, Ronny
seems that this was meant to be another frontend kill again (this spawns after being killed). corrected it, thanks.