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
Touch seeded packages, 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
--
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp