12

I've been trying to update standard packages on my Ubuntu box. There's literally nothing extra on this box except for VirtualBox for some Windows stuff I run. Here's one output:

$ sudo apt-get update
[...]
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libgail-3-0 : Depends: libgtk-3-0 (= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed
 libgtk-3-0 : Depends: libgtk-3-common (= 3.6.0-0ubuntu3.1) but 3.6.0-0ubuntu3.2 is installed
 libgtk-3-bin : Depends: libgtk-3-0 (>= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed

And another with the -f option:

$ sudo apt-get -f upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be upgraded:
  libgtk-3-0 overlay-scrollbar-gtk3
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
26 not fully installed or removed.
Need to get 0 B/2,397 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 ... 203437 files and directories currently installed.)
Preparing to replace libgtk-3-0:amd64 3.6.0-0ubuntu3.1 (using .../libgtk-3-0_3.6.0-0ubuntu3.2_amd64.deb) ...
Unpacking replacement libgtk-3-0:amd64 ...
dpkg: error processing /var/cache/apt/archives/libgtk-3-0_3.6.0-0ubuntu3.2_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules', which is also in package ibus-gtk3:amd64 1.4.1-7ubuntu1
Preparing to replace overlay-scrollbar-gtk3:amd64 0.2.16+r357-0ubuntu1 (using .../overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_amd64.deb) ...
Unpacking replacement overlay-scrollbar-gtk3:amd64 ...
dpkg: error processing /var/cache/apt/archives/overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/gtk-3.0/modules', which is also in package libcanberra-gtk3-module:amd64 0.29-0ubuntu2
Errors were encountered while processing:
 /var/cache/apt/archives/libgtk-3-0_3.6.0-0ubuntu3.2_amd64.deb
 /var/cache/apt/archives/overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Here's the output for apt-cache policy for all packages concerned: pastebin d3YcjPmJ. All seem to be from the official quantal and quantal-updates release channel and an official mirror.

I've also tried sudo apt-get -f install, sudo apt-get dist-upgrade and sudo apt-get clean && sudo rm -r /var/cache/apt/archives/, but all lead to the same error.

11
  • Yes I made the update with the new packages, and yes I ran update before upgrade
    – Logan Best
    Jan 2, 2013 at 21:59
  • Both of those commands got the same output as the -f output in the original request.
    – Logan Best
    Jan 2, 2013 at 22:09
  • 1
    Have you tried deleting the /var/cache/apt/archives/ directory and updating again? sudo apt-get clean && sudo rm -r /var/cache/apt/archives/
    – Lucio
    Jan 2, 2013 at 22:24
  • Tried and same error. Updated question.
    – Logan Best
    Jan 2, 2013 at 22:46
  • @LoganBest Please, try with this: sudo dpkg -r libgtk-3-0_3.6.0-0ubuntu3.2_amd64.deb && sudo dpkg -r overlay-scrollbar-gtk3_0.2.16+r357-0ubuntu1.1_amd64.deb and then sudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade
    – Lucio
    Jan 3, 2013 at 0:00

2 Answers 2

3

Ok, if you are still experiencing this problem, it happens because some package won't work if the versions of their peers aren't the same.

libgail-3-0 : Depends: libgtk-3-0 (= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed
libgtk-3-0 : Depends: libgtk-3-common (= 3.6.0-0ubuntu3.1) but 3.6.0-0ubuntu3.2 is installed
libgtk-3-bin : Depends: libgtk-3-0 (>= 3.6.0-0ubuntu3.2) but 3.6.0-0ubuntu3.1 is installed

As you can see libgail-3-0 requires libgtk-3-0 to be 3.6.0-0ubuntu3.2 but libgtk-3-0 requires libgtk-3-common to be 3.6.0-0ubuntu3.1 a diference of .1 versions. So, since libgtk-family can't be of different versions, apt-get gets an expectacular dependency error. So how to solve this? We use the hold package status:

echo "libgtk-3-bin hold" | sudo dpkg --set-selections
echo "libgtk-3-0 hold" | sudo dpkg --set-selections

With this, you can upgrade normally until the dependency conflicts get resolved in the Ubuntu repositories.

Once you feel that you can allow upgrades, just run:

echo "libgtk-3-bin install" | sudo dpkg --set-selections
echo "libgtk-3-0 install" | sudo dpkg --set-selections

Another option is to force versions to being installed:

sudo apt-get update
sudo apt-get install libgtk-3-0=3.6.0-0ubuntu3.1 libgtk-3-common=3.6.0-0ubuntu3.1 libgtk-3-0=3.6.0-0ubuntu3.1

This will tell apt-get to install everything using the same version number.

1

For anyone who still has those problems.

I believe they appear when you manually delete some packages but don't clean all the rubbish they leave behind. In my case I had libgtk still installed and it was a newer version then I wanted to install. So it really didn't know what to do with different versions of the library.

After just deleting the libgtk-3-0 and other packages with similar problems everything went on fine.

PS. Note that if you have done echo "libgtk-3-0 hold" | sudo dpkg --set-selections Then you HAVE to do echo "libgtk-3-0 install" | sudo dpkg --set-selections in order to be able to delete this package.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .