← Back to team overview

touch-packages team mailing list archive

[Bug 1512219] [NEW] apt appears to be confused when installing a backport that version depends on other backports

 

Public bug reported:

This was seen in trusty where backports are pretty widely used.

We backported the whole lxc+lxd stack (golang, libseccomp, cgmanager,
lxcfs, lxc, lxd) with some added version dependencies everywhere it made
sense so that when pulling lxd, everything would be installed with the
right version.

The assumption was that since lxd didn't exist in 14.04 and that as
backports are enabled there by default, a simple "apt-get install lxd"
would work.

That's not the case, it fails with:
root@blah:~# apt-get install lxd
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:
 lxd : Depends: lxc (>= 1.1.4-0ubuntu1.1~) but 1.0.7-0ubuntu0.9 is to be installed
       Recommends: lxd-client but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Showing more resolver details show:
 Broken lxd:amd64 Depends on lxc [ amd64 ] < none -> 1.0.7-0ubuntu0.9 | 1.1.4-0ubuntu1.1~ubuntu14.04.1 > ( admin ) (>= 1.1.4-0ubuntu1.1~)
 Considering lxc:amd64 0 as a solution to lxd:amd64 9999
 Re-Instated liblxc1:amd64
 Re-Instated python3-lxc:amd64
 Re-Instated lxc:amd64


I then tried installing with "apt-get install lxd/trusty-backports" which got me roughly the same thing:
root@blah:~# apt-get install lxd/trusty-backports
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Selected version '0.21-0ubuntu3~ubuntu14.04.1' (Ubuntu:14.04/trusty-backports [amd64]) for 'lxd'
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:
 lxd : Depends: lxc (>= 1.1.4-0ubuntu1.1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.


So in the end, I had to use "apt-get -t trusty-backports install lxd" which did succeed in pulling everything from backports.


This seems like an apt bug as apt is clever enough to go pick things
from backports when they're available nowhere else, one would expect
that it would do the same when picking the dependencies of such a
backport when they are in the same pocket as the backport, instead of
failing to resolve the dependencies.

It'd be great if people could use a straight apt-get install for non-
existing packages or the /trusty-backports packages to pull specific
packages from backports during install, instead of having to rely on a
separate apt-get run with -t trusty-backports specified.

Also it looks like our existing backports documentation points users to
the /trusty-backports syntax which will not work for any reasonably
complex backport which involves more than one package.

** Affects: apt (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1512219

Title:
  apt appears to be confused when installing a backport that version
  depends on other backports

Status in apt package in Ubuntu:
  New

Bug description:
  This was seen in trusty where backports are pretty widely used.

  We backported the whole lxc+lxd stack (golang, libseccomp, cgmanager,
  lxcfs, lxc, lxd) with some added version dependencies everywhere it
  made sense so that when pulling lxd, everything would be installed
  with the right version.

  The assumption was that since lxd didn't exist in 14.04 and that as
  backports are enabled there by default, a simple "apt-get install lxd"
  would work.

  That's not the case, it fails with:
  root@blah:~# apt-get install lxd
  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:
   lxd : Depends: lxc (>= 1.1.4-0ubuntu1.1~) but 1.0.7-0ubuntu0.9 is to be installed
         Recommends: lxd-client but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.

  Showing more resolver details show:
   Broken lxd:amd64 Depends on lxc [ amd64 ] < none -> 1.0.7-0ubuntu0.9 | 1.1.4-0ubuntu1.1~ubuntu14.04.1 > ( admin ) (>= 1.1.4-0ubuntu1.1~)
   Considering lxc:amd64 0 as a solution to lxd:amd64 9999
   Re-Instated liblxc1:amd64
   Re-Instated python3-lxc:amd64
   Re-Instated lxc:amd64

  
  I then tried installing with "apt-get install lxd/trusty-backports" which got me roughly the same thing:
  root@blah:~# apt-get install lxd/trusty-backports
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  Selected version '0.21-0ubuntu3~ubuntu14.04.1' (Ubuntu:14.04/trusty-backports [amd64]) for 'lxd'
  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:
   lxd : Depends: lxc (>= 1.1.4-0ubuntu1.1~) but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.

  
  So in the end, I had to use "apt-get -t trusty-backports install lxd" which did succeed in pulling everything from backports.


  This seems like an apt bug as apt is clever enough to go pick things
  from backports when they're available nowhere else, one would expect
  that it would do the same when picking the dependencies of such a
  backport when they are in the same pocket as the backport, instead of
  failing to resolve the dependencies.

  It'd be great if people could use a straight apt-get install for non-
  existing packages or the /trusty-backports packages to pull specific
  packages from backports during install, instead of having to rely on a
  separate apt-get run with -t trusty-backports specified.

  Also it looks like our existing backports documentation points users
  to the /trusty-backports syntax which will not work for any reasonably
  complex backport which involves more than one package.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1512219/+subscriptions


Follow ups