[Bug 1974196] Re: Installing libudev1 on a new Jammy installation uninstalls many packages.

Jochen Sprickerhof 1974196 at bugs.launchpad.net
Thu Jun 2 08:45:15 UTC 2022


Hi Tully,

in your minimal example libudev1 is already installed in the system
(util-linux : PreDepends: libudev1 and util-linux is essential). On the
other end, libnss-systemd, libpam-systemd, systemd-timesyncd and udev
are not essential (you can get the list with apt list '~E', note that
this does neither include systemd nor the kernel nor ubuntu-desktop
because the system could be a container). With this, the apt install
libudev1 action is the documented behavior (though maybe not intuitive):

           This is also the target to use if you want to upgrade one or more already-installed
           packages without upgrading every package you have on your system. Unlike the "upgrade"
           target, which installs the newest version of all currently installed packages,
           "install" will install the newest version of only the package(s) specified.

https://manpages.ubuntu.com/manpages/jammy/en/man8/apt-get.8.html

I.e. apt will try to fulfill the request to install the newest libudev1
without upgrading other packages and as this conflicts with other, non
essential, packages it will remove those.

You can avoid this with apt install --trivial-only libudev1 or apt
install --no-remove libudev1.

I was not able to reproduce the problem in ros2#1272 because of the
added Conflicts: in ros-humble-ros-workspace
(https://github.com/ros2-gbp/ros_workspace-release/pull/4).

Note that the Conflicts: libsystemd0 (<= 249.11-0ubuntu3), libudev1 (<=
249.11-0ubuntu3) are not really correct. The manual does not require
jammy-updates so installing on a system without it is broken now. You
probably want to add jammy-updates to the manual if the ROS build farm
includes them. Also they are rather temporary because any future updates
of src:systemd in jammy-updates could result in the same problem.

I would recommend to move the apt update && apt upgrade to the begin of
your manual and after adding additional apt sources.

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

Title:
  Installing libudev1 on a new Jammy installation uninstalls many
  packages.

Status in systemd package in Ubuntu:
  Confirmed

Bug description:
  On an Ubuntu 22.04 desktop system created using the current
  installation image without enabling package updates over the network,
  installing the package libudev1 results in a large number of critical
  packages being removed and rendering the system essentially unusable.

  https://github.com/tfoote/udevdebug/blob/main/Dockerfile is a Dockerfile which also demonstrates the issue.
  Building the image, which will install udev 249.11-0ubuntu3 and init 1.62, and then running `apt install libudev1` in the generated image results in

  The following packages will be REMOVED:
    libnss-systemd libpam-systemd systemd-timesyncd udev
  The following packages will be upgraded:
    libudev1

  
  This is completely prevented by ensuring that updates are installed from the jammy-updates repository before installing any additional packages and that is almost certainly the correct thing to do. But this is a punishing result for such a mistake.

  I would expect the installation to either force the upgrade of the
  other systemd packages or refuse to install libudev1 at the incorrect
  version relative to the other systemd packages until the system is
  upgraded.

  We found this out via a user report for ROS 2 Humble which is
  releasing on top of Ubuntu 22.04 next week:
  https://github.com/ros2/ros2/issues/1272

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




More information about the foundations-bugs mailing list