Friday, October 28, 2016

14.04 - Fixing "The following packages have been kept back" - without install?

I've ended up with the Gtk-Message: Failed to load module "overlay-scrollbar" due to needing 32-bit overlay-scrollbar-gtk2 on a 64-bit amd64 Ubuntu - which is better described in How do I install 32-bit libraries when they keep having uninstallable dependencies? ...




Basically, if I sudo apt-get install overlay-scrollbar-gtk2:i386, it will fail on 14.04, because it is understood to depend on overlay-scrollbar:i386, however on 14.04 only overlay-scrollbar:all is being installed.



So, I could try apt-get download with dpkg --ignore-depends ... as in How do I install 32-bit libraries when they keep having uninstallable dependencies? - but that didn't quite work...



So what I tried, was to follow the directions Howto change dependencies, and did something like this:



sudo apt-get remove --purge overlay-scrollbar-gtk2:i386
apt-get download overlay-scrollbar-gtk2:i386
dpkg-deb -x overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_i386.deb tmpdir-1404

dpkg-deb --control overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_i386.deb tmpdir-1404/DEBIAN
nano tmpdir-1404/DEBIAN/control ## edit, see below
dpkg -b tmpdir-1404 overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb
# dpkg-deb: warning: 'tmpdir-1404/DEBIAN/control' contains user-defined field 'XB-Ignore'
# dpkg-deb: warning: ignoring 1 warning about the control file(s)


In the nano edit, I do the same as in Ignoring specific unmet dependencies with aptitude? - I comment the dependency using a XB* tag:



...

Depends: libc6 (>= 2.4), libcairo2 (>= 1.10.0), libglib2.0-0 (>= 2.37.3), libgt$
XB-Ignore: overlay-scrollbar, # hack: ignore this dependency for i386
...


And now, installing the hacked .deb passes without a problem:



$ sudo dpkg -i overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb
Selecting previously unselected package overlay-scrollbar-gtk2:i386.
(Reading database ... 227214 files and directories currently installed.)

Preparing to unpack overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb ...
Unpacking overlay-scrollbar-gtk2:i386 (0.2.16+r359+14.04.20131129-0ubuntu1) ...
Setting up overlay-scrollbar-gtk2:i386 (0.2.16+r359+14.04.20131129-0ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.7) ...


Looks good (and actually, seems to be good - because when I run 32-bit programs that used to complain with Gtk-Message: Failed to load module "overlay-scrollbar" after this, they do not complain anymore) - but now when I do an apt-get upgrade, I get the "packages have been kept back" message:



$ sudo apt-get update
$ sudo apt-get upgrade

Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
overlay-scrollbar-gtk2:i386
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.


... but what is even stranger, when I do apt-get dist-upgrade, there are no warnings whatsoever?!:




$ sudo apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


This page apt-get dist-upgrade doesn't fix 'The following packages have been kept back' also notes:





That means they've been kept back for a more difficult reason than new dependencies or needing the removal of other packages.




So, does anyone know - what would be the reason for "keeping back" the package in this case - and how to get rid of that warning when doing an update? Clearly, I don't want to do apt-get install of the package here, as it is hacked and I'd want to install it directly from the .deb - and apt-get cannot install a .deb file directly, only dpkg can do that...






EDIT: as @ByteCommander suggested in comments, I tried aptitude:




$ sudo aptitude upgrade 
Resolving dependencies...
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.


That doesn't tell much - this is more revealing:




$ sudo aptitude full-upgrade 
The following packages will be upgraded:
overlay-scrollbar-gtk2:i386{b}
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.3 kB of archives. After unpacking 0 B will be used.
The following packages have unmet dependencies:
overlay-scrollbar-gtk2:i386 : Depends: overlay-scrollbar:i386 which is a virtual package.
The following actions will resolve these dependencies:

Remove the following packages:

1) overlay-scrollbar-gtk2:i386

Accept this solution? [Y/n/q/?] q
Abandoning all efforts to resolve these dependencies.
Abort.


Hmm... I thought I had already removed the dependency to overlay-scrollbar:i386 ??!



Also, here is apt-cache policy as per @ByteCommander comment:




$ apt-cache policy overlay-scrollbar:i386 overlay-scrollbar
overlay-scrollbar:i386:
Installed: (none)
Candidate: (none)
Version table:
overlay-scrollbar:
Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
Version table:

*** 0.2.16+r359+14.04.20131129-0ubuntu1 0
500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status

$ apt-cache policy overlay-scrollbar-gtk2:i386 overlay-scrollbar-gtk2
overlay-scrollbar-gtk2:i386:
Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
Version table:
0.2.16+r359+14.04.20131129-0ubuntu1 0

500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
*** 0.2.16+r359+14.04.20131129-0ubuntu1 0
100 /var/lib/dpkg/status
overlay-scrollbar-gtk2:
Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
Version table:
*** 0.2.16+r359+14.04.20131129-0ubuntu1 0
500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status



Hmmm... could be something with /var/lib/dpkg/status, but not yet sure what it is...

No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...