dpkg – How to Fix i386 Cannot Be Configured Because amd64 is in a Different Version

dpkg

I've managed to break apt-get, I think it had something to do with competing versions of libqt between supercollider and Skype. When I run apt-get -f install I get:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  libxml++2.6-2 libffado2 libconfig++8 libssl1.0.0:i386
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libqt4-declarative:i386 libqt4-sql-mysql libqt4-sql-mysql:i386 libqt4-test qdbus
Suggested packages:
  libqt4-declarative-folderlistmodel:i386 libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386 libqt4-declarative-shaders:i386 qt4-qmlviewer:i386
  libqt4-dev libqt4-dev:i386
The following packages will be upgraded:
  libqt4-declarative:i386 libqt4-sql-mysql libqt4-sql-mysql:i386 libqt4-test qdbus
5 upgraded, 0 newly installed, 0 to remove and 449 not upgraded.
14 not fully installed or removed.
Need to get 0 B/1,236 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 183437 files and directories currently installed.)
Preparing to replace libqt4-sql-mysql 4:4.8.1-0ubuntu4.1 (using .../libqt4-sql-mysql_4%3a4.8.1-0ubuntu4.2_amd64.deb) ...
Unpacking replacement libqt4-sql-mysql ...
dpkg: error processing libqt4-sql-mysql:i386 (--configure):
 libqt4-sql-mysql:i386 4:4.8.1-0ubuntu4.1 cannot be configured because libqt4-sql-mysql:amd64 is in a different version (4:4.8.1-0ubuntu4.2)
dpkg: error processing libqt4-sql-mysql (--configure):
 libqt4-sql-mysql:amd64 4:4.8.1-0ubuntu4.2 cannot be configured because libqt4-sql-mysql:i386 is in a different version (4:4.8.1-0ubuntu4.1)
Errors were encountered while processing:
 libqt4-sql-mysql:i386
 libqt4-sql-mysql
E: Sub-process /usr/bin/dpkg returned an error code (1)

I read that I could fix this by installing aptitude and removing and reinstalling broken packages, but I can't install it using dpkg.

Best Answer

You should be able to remove packages using dpkg directly, for example:

sudo dpkg -r libqt4-sql-mysql:i386

You can then see if the remaining packages can be configured with

sudo dpkg --configure -a

Once everything's configured successfully, apt-get should be able to install aptitude which should be able to work out a solution to fix the dependencies.

Related Question