apt-get dselect-upgrade multi-arch bug while resolving dependencies

Bug #1212716 reported by James Troup
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
New
Undecided
Unassigned

Bug Description

dselect-upgrade in Ubuntu 12.04 LTS appears to have issues resolving
dependencies with multi-arch in play. Starting from a clean state:

| root@lamassu:~# apt-get update > /dev/null; echo $?; apt-get dist-upgrade > /dev/null; echo $?; apt-get dselect-upgrade
| 0
| 0
| Reading package lists... Done
| Building dependency tree
| Reading state information... Done
| 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
| root@lamassu:~#

If I then ask for libvirt-bin to be installed and run dselect-upgrade,
it wanders off into the weeds of multiarch and by the time it wants to
come out, it's ready to toss ubuntu-minimal and ubuntu-standard
overboard to do so.

| root@lamassu:~# echo "libvirt-bin install" | dpkg --set-selections; apt-get dselect-upgrade
| Reading package lists... Done
| Building dependency tree
| Reading state information... Done
| The following packages will be REMOVED
| crda cron libnl-3-200 libnl-genl-3-200 linux-image-3.2.0-51-generic linux-image-generic linux-image-server logrotate netcat-openbsd ubuntu-minimal ubuntu-standard uptrack
| The following NEW packages will be installed
| bridge-utils:i386 cgroup-bin:i386 cron:i386 gcc-4.6-base:i386 libapparmor1:i386 libavahi-client3 libavahi-client3:i386 libavahi-common-data libavahi-common-data:i386 libavahi-common3 libavahi-common3:i386 libblkid1:i386 libc6:i386
| libcgroup1:i386 libdb5.1:i386 libdbus-1-3:i386 libffi6:i386 libgcc1:i386 libgcrypt11:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386 libidn11:i386 libnl-3-200:i386 libnuma1:i386 libp11-kit0:i386 libpam0g:i386 libpcap0.8:i386
| libpciaccess0:i386 libpcre3:i386 libpopt0:i386 libreadline6:i386 libsasl2-2:i386 libselinux1:i386 libstdc++6:i386 libtasn1-3:i386 libtinfo5:i386 libudev0:i386 libuuid1:i386 libxenstore3.0:i386 libxml2:i386 libyajl1:i386 logrotate:i386
| netcat-openbsd:i386 zlib1g:i386
| 0 upgraded, 45 newly installed, 12 to remove and 0 not upgraded.
| Need to get 9,448 kB/9,526 kB of archives.
| After this operation, 125 MB disk space will be freed.
| Do you want to continue [Y/n]? n
| Abort.
| root@lamassu:~#

On the other hand, if I just install the package by hand, it does the
right thing:

| root@lamassu:~# apt-get install libvirt-bin
| Reading package lists... Done
| Building dependency tree
| Reading state information... Done
| The following packages were automatically installed and are no longer required:
| python-xapian python-chardet
| Use 'apt-get autoremove' to remove them.
| The following extra packages will be installed:
| bridge-utils cgroup-lite dnsmasq-base libapparmor1 libavahi-client3 libavahi-common-data libavahi-common3 libnetfilter-conntrack3 libnuma1 libvirt0 libxenstore3.0 libyajl1
| Suggested packages:
| policykit-1 pm-utils qemu-kvm qemu radvd
| Recommended packages:
| libxml2-utils gawk ebtables
| The following NEW packages will be installed
| bridge-utils cgroup-lite dnsmasq-base libapparmor1 libavahi-client3 libavahi-common-data libavahi-common3 libnetfilter-conntrack3 libnuma1 libvirt-bin libvirt0 libxenstore3.0 libyajl1
| 0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
| Need to get 2,472 kB/2,550 kB of archives.
| After this operation, 8,752 kB of additional disk space will be used.
| Do you want to continue [Y/n]? n
| Abort.
| root@lamassu:~#

(I know, dselect, haha. We use it because it allows us to tell puppet
 to indicate which packages should be installed and then have a human
 interactively enact that by running 'apt-get dselect-upgrade'. If
 there's an alternative way to do the same two stage process without
 using dselect-upgrade, I'd be happy to use that instead.)

Revision history for this message
David Kalnischkies (donkult) wrote :

Some debug options like:
-o Debug::pkgDepCache::Marker=1 -o Debug::pkgProblemResolver=1
might give you some hints what the difference between the two is.

I must note though that I have carefully stayed away from ever touching dselect-related functionality in APT as dselect predates my Debian usage by (many) years and I haven't seen others working on it, so I am a bit surprised that it is still (even partly) works…

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.