[Bug 1851675] Re: dpkg fails to properly invoke ldconfig

Alexander Thomas doctor.lex at gmail.com
Fri Nov 8 16:08:10 UTC 2019


This bug has now been filed upstream: https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=944364

** Bug watch added: Debian Bug tracker #944364
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=944364

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

Title:
  dpkg fails to properly invoke ldconfig

Status in dpkg package in Ubuntu:
  New

Bug description:
  Seen on: Ubuntu 18.04.3 LTS
  dpkg version: 1.19.0.5ubuntu2.3 (also in 1.19.0.5ubuntu2.2)

  Regression compared to dpkg 1.19.0.5ubuntu2.1

  To reproduce this:
  1. You need a package that depends on a library for running a script in its postinst hook. For instance, the attached minimal package has `Depends: python-augeas`, and tries to do “from augeas import Augeas” in a script invoked from the postinst hook. (It does nothing else.)
  2. Make sure the dependent library is not yet installed. In this example: libaugeas0, which is a dependency of python-augeas.
  3. apt-get install the package. For the attached exmple, you can use `dpkg -i`, followed by `apt-get -f install`.

  Result:

  Setting up the-package (1.2.3ubuntu1-2-1) ...
  Traceback (most recent call last):
    File "/usr/lib/the-package/setup-package.py", line 3, in <module>
      from augeas import Augeas
    File "/usr/lib/python2.7/dist-packages/augeas.py", line 78, in <module>
      class Augeas(object):
    File "/usr/lib/python2.7/dist-packages/augeas.py", line 82, in Augeas
      _libaugeas = _dlopen("augeas")
    File "/usr/lib/python2.7/dist-packages/augeas.py", line 75, in _dlopen
      raise ImportError("Unable to import lib%s!" % args[0])
  ImportError: Unable to import libaugeas!
  dpkg: error processing package the-package (--configure):
   installed the-package package post-installation script subprocess returned error exit status 1

  Simply running apt-get -f install afterwards will succeed and run the
  postinst script.

  The cause of this problem seems to be either that any invocations of
  `ldconfig` during the installation of the dependent libraries, do
  nothing at all, or rather that `ldconfig` is not invoked when it
  should be.

  When adding `ldconfig -p >/tmp/ldconfig-output` to the postinst hook,
  one can see that neither libaugeas0 nor any other libraries that were
  just installed, are in the ldconfig cache at the moment the script is
  invoked.

  Even when trying to perform an ugly workaround by adding an explicit `ldconfig` invocation in the postinst script before running the python script, it still fails.
  Very curiously, calling `ldconfig -v >/dev/null` instead, somehow makes ldconfig work. This is probably because ldconfig calls are actively blocked in maintainer scripts, but adding the argument and redirect circumvents this block...

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



More information about the foundations-bugs mailing list