So, my native architecture is amd64 and also I have added i386 as foreign one. I have faced with strange apt behaviour. For example, lets take libqt4-dbus package.I try to find out all available package versions:

phargelm@phargelm:~$ sudo apt list libqt4-dbus -a
Listing... Done
libqt4-dbus/stable,now 4:4.8.6+git64-g5dc8b2b+dfsg-3+deb8u1 amd64  [installed]

It seems, that there available only amd64 build. If I try to install this packages with explicitly specifying package architecture (i386), I get this:

phargelm@phargelm:~$ sudo apt install libqt4-dbus:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libqt4-dbus:i386 : Depends: libqtdbus4:i386 (= 4:4.8.6+git64-g5dc8b2b+dfsg-3+deb8u1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Also, I have no result with apt-get -f install:

phargelm@phargelm:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

But aptitude working just fine:

phargelm@phargelm:~$ sudo aptitude install libqt4-dbus:i386
The following NEW packages will be installed:
  gcc-4.9-base:i386{a} libc6:i386{a} libc6-i686:i386{a} libdbus-1-3:i386{a} libffi6:i386{a} libgcc1:i386{a} libglib2.0-0:i386{a} libpcre3:i386{a} libqt4-dbus:i386 
  libqt4-xml:i386{a} libqtcore4:i386{a} libqtdbus4:i386{a} libselinux1:i386{a} libstdc++6:i386{a} zlib1g:i386{a} 
0 packages upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 11.2 MB of archives. After unpacking 27.1 MB will be used.

So, question is: why aptitude can install libqt4-dbus:i386 with no problems, but apt can't, how to fix it?

  • Can you do a apt-get update first before installing? Have you checked your /etc/apt/sources.list?
    – user345866
    Nov 18 '16 at 20:21

The answer can be seen in the output of aptitude. Simply aptitude is a high level tool that tries to solve the dependencies hell for you. Apt told you that this library requires installing a dependency, which what Aptitude has done for you, check the list of additional libs installed by Aptitude to make your request. This can be achieved by Apt, if you manually asked it to install all this list by yourself.

  • I never had problems with apt. It always resolved dependencies perfectly, but now it seems that apt just doesn't try installing all dependencies and it seems to me strange. I want to understand reasons of such behaviour. Why apt installing dependencies for other packages? amd64, for example?
    – Phargelm
    Nov 13 '16 at 20:27

You may need to update your aptitude database and installed packages beforehand.

# aptitude update
# aptitude safe-upgrade 
  • Ok, I have tried it, but, unfortunatelly, with no success:(
    – Phargelm
    Nov 13 '16 at 22:15

The problem has been solved with removing unofficial "dotdeb" repository from sources list and uninstalling/downgrading all packages to stable branch.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.