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

Bug #1212716 reported by James Troup on 2013-08-15
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
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.)

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  Edit
Everyone can see this information.

Other bug subscribers