Notes on software development (Windows) and computer system administration.

2007-11-25

Knoppmyth Upgrade Trouble

While trying to upgrade my KnoppMyth installation, using apt-get dist-upgrade, I ran into trouble with package conflicts:

# apt-get -f install
Reading package lists... Done
Building dependency tree... Done
Correcting dependencies... Done
The following extra packages will be installed:
libdrm2
The following packages will be upgraded:
libdrm2
1 upgraded, 0 newly installed, 0 to remove and 215 not upgraded.
335 not fully installed or removed.
Need to get 0B/20.7kB of archives.
After unpacking 16.4kB of additional disk space will be used.
Do you want to continue [Y/n]?
Selecting previously deselected package libdrm2.
(Reading database ... 81718 files and directories currently installed.)
Preparing to replace libdrm2 2.0.2-0.1 (using .../libdrm2_2.3.0-4_i386.deb) ...
Unpacking replacement libdrm2 ...
dpkg: error processing /var/cache/apt/archives/libdrm2_2.3.0-4_i386.deb (--unpack):
trying to overwrite `/usr/lib/libdrm.so.2.3.0', which is also in package via-drm
Errors were encountered while processing:
/var/cache/apt/archives/libdrm2_2.3.0-4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


Attempting a libdrm2 caused a conflict with via-drm, and vice-versa:
#apt-get install libdrm2
Reading package lists... Done
Building dependency tree... Done
The following packages will be upgraded:
libdrm2
1 upgraded, 0 newly installed, 0 to remove and 215 not upgraded.
335 not fully installed or removed.
Need to get 0B/20.7kB of archives.
After unpacking 16.4kB of additional disk space will be used.
Selecting previously deselected package libdrm2.
(Reading database ... 81718 files and directories currently installed.)
Preparing to replace libdrm2 2.0.2-0.1 (using .../libdrm2_2.3.0-4_i386.deb) ...
Unpacking replacement libdrm2 ...
dpkg: error processing /var/cache/apt/archives/libdrm2_2.3.0-4_i386.deb (--unpack):
trying to overwrite `/usr/lib/libdrm.so.2.3.0', which is also in package via-drm
Errors were encountered while processing:
/var/cache/apt/archives/libdrm2_2.3.0-4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


In the end, the only way to get apt-get back on track was to force one of the two problem packages to install using dpkg. I gave dpkg's -i (install) argument the path to apt's .deb file cache, which I found in the above output (/var/cache/apt...):
dpkg --force-all -i /var/cache/apt/archives/libdrm2_2.3.0-4_i386.deb
(Reading database ... 81718 files and directories currently installed.)
Preparing to replace libdrm2 2.0.2-0.1 (using .../libdrm2_2.3.0-4_i386.deb) ...
Unpacking replacement libdrm2 ...
dpkg - warning, overriding problem because --force enabled:
trying to overwrite `/usr/lib/libdrm.so.2.3.0', which is also in package via-drm
dpkg - warning, overriding problem because --force enabled:
trying to overwrite `/usr/lib/libdrm.so.2', which is also in package via-drm
Setting up libdrm2 (2.3.0-4) ...


Now, apt-get install and apt-get upgrade proceed normally.