I just got a VPS for private use, and wanted to upgrade it to Debian testing (squeeze) in order to have newer packages. The actual version was Debian stable (lenny).
What I did is simply :
- edit
/etc/apt/sources.list
and replacelenny
withsqueeze
- run
apt-get update
- run
apt-get dist-upgrade
This is AFAIK the standard way of upgrading a machine. However, I got the following error :
Selecting previously deselected package insserv.
dpkg: considering deconfiguration of sysv-rc, which would be broken by installation of insserv ...
dpkg: yes, will deconfigure sysv-rc (broken by insserv).
(Reading database ... 37095 files and directories currently installed.)
Unpacking insserv (from .../insserv_1.12.0-14_i386.deb) ...
De-configuring sysv-rc ...
Setting up insserv (1.12.0-14) ...
(Reading database ... 37124 files and directories currently installed.)
Preparing to replace sysv-rc 2.86.ds1-61 (using .../sysv-rc_2.87dsf-8_all.deb) ...
touch: setting times of `/etc/init.d/.legacy-bootordering': Bad address
dpkg: error processing /var/cache/apt/archives/sysv-rc_2.87dsf-8_all.deb (--unpack):
subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/sysv-rc_2.87dsf-8_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
When trying to install sysv-rc itself, I get the following error. The file in question (/etc/init.d/.legacy-bootordering
) exists, but is empty.
Has anybody an idea of what causes this error, and how I could solve it ?
-
The standard upgrade instructions usually include an basic upgrade (
upgrade
orsafe-upgrade
) before thedist-upgrade
step. You should give the upgrade instructions in the release notes a read. The notes for Sqeeze do not appear to be available yet, unsurprisingly, but those for Lenny should be a good start: http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.en.htmlWookai : As I can re-install the VPS to its original state, I tried to first do a dist-upgrade on lenny to have all packages up to date before changing to squeeze. But I get the same error...Wookai : It seems that Debian testing is currently broken, according to a moderator on Debian.net. Let's wait for a few days before trying again.womble : `update` doesn't upgrade any packages.David Spillett : Sorry, that should have been upgrade - I'll correct the reply.From David Spillett -
The problem comes from a preinst script (a package maintainer script that is run before the installation of the package). It is likely to be '/var/lib/dpkg/info/sysv-rc.preinst'
touch fails to set the modification date of /etc/init.d/.legacy-bootordering.
Try to 'touch' any file yourself. Try to delete it and rerun it.
Did apt upgrade the glibc before sysv-rc ? There are many bugreport concerning that problem, not only on Debian.
Look for "touch bad address" on search engines...
I believe this is something related to both (kernel + libc)
Wookai : Yes, I found out about the "touch bad address" problem later. Looks like we have to wait until the bug is fixed... Thanks for the input though !From zecrazytux