[Bug 1788486] Re: apt behaviour with strict dependencies

Eric Desrochers eric.desrochers at canonical.com
Thu Aug 23 13:38:22 UTC 2018


# apt-get install --dry-run -t xenial-security systemd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpam-systemd libsystemd0
Suggested packages:
  systemd-ui systemd-container
The following packages will be upgraded:
  libpam-systemd libsystemd0 systemd
3 upgraded, 0 newly installed, 0 to remove and 221 not upgraded.
Inst libpam-systemd [229-4ubuntu7] (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64]) []
Inst libsystemd0 [229-4ubuntu7] (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64]) [systemd:amd64 ]
Conf libsystemd0 (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64]) [systemd:amd64 ]
Inst systemd [229-4ubuntu7] (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64])
Conf systemd (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64])
Conf libpam-systemd (229-4ubuntu21.1 Ubuntu:16.04/xenial-security [amd64])

# apt-get install --dry-run systemd=229-4ubuntu21.1
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:
 systemd : Depends: libsystemd0 (= 229-4ubuntu21.1) but 229-4ubuntu21.4 is to be installed
           Recommends: libpam-systemd but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1788486

Title:
  apt behaviour with strict dependencies

Status in apt package in Ubuntu:
  Confirmed
Status in apt source package in Xenial:
  Confirmed
Status in apt source package in Bionic:
  Confirmed

Bug description:
  [Impact]

  We notice that situation while investigating a security update using
  Landscape, but it also applies to 'apt' outside the Landscape context.

  'apt' should be smarter to detect/install packages with strict
  dependencies such as systemd[1] when a version is specified for
  upgrade (Ex: $ apt-get install systemd=229-4ubuntu-21.1).

  It should automatically install the dependencies (if any) from that
  same version as well instead of failing trying to install the highest
  version available (if any) while installing the specified version for
  the one mentionned :

  ========================
  $ apt-get install systemd=229-4ubuntu-21.1
  ....
  "systemd : Depends: libsystemd0 (= 229-4ubuntu21.1) but 229-4ubuntu21.4 is to be installed"
  =========================

  To face that problem :
  - Package with lower version should be found in -security ( Ex: systemd/229-4ubuntu21.1 )
  - Package with higher version should be found in -updates ( Ex: systemd/229-4ubuntu21.4 )
  - Package should have strict dependencies ( Ex: libsystemd0 (= ${binary:Version}) )
  - The upgrade should only specify version for the package, without it's dependencies. (Ex: $ apt-get install systemd=229-4ubuntu-21.1" #systemd without libsystemd0 depends)

  Using systemd is a good reproducer, I'm sure finding other package
  with the same situation is easy.

  It has been easily reproduced with systemd on Xenial and Bionic so
  far.

  [1] debian/control
  Depends: ${shlibs:Depends},
  ${misc:Depends},
  libsystemd0 (= ${binary:Version}),
  ...

  [Workaround]
  If package + dependencies are specified, the upgrade work just fine :

  Ex: $ apt-get install systemd=229-4ubuntu-21.1
  libsystemd0=229-4ubuntu-21.1

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



More information about the foundations-bugs mailing list