Bug#1110414: systemd-sysv: Missing versioned dependency on libsystemd-shared
Samuel Thibault
sthibault at debian.org
Tue Aug 5 14:19:51 BST 2025
Control: reassign -1 systemd
Michael Biebl, le mar. 05 août 2025 11:43:39 +0200, a ecrit:
> On Tue, 5 Aug 2025 01:28:27 +0200 Samuel Thibault <sthibault at debian.org>
> wrote:
> > Package: systemd-sysv
> > And then I lost the box. On restart I am getting:
> >
> > /sbin/init: error while loading shared libraries: libsystemd-core-252.so: cannot open shared object file: No such file or directory
> >
>
> ...
>
> > So it upgraded libsystemd-shared but didn't upgrade systemd-sysv
> > alongside, and thus /sbin/init is now broken...
> >
> > systemd-sysv must have a versioned dependency on libsystemd-shared to
> > avoid such situation.
> I'm curious about this line:
> > Suppression de sysvinit (2.88dsf-59) ...
>
> Do you have some sysvinit left-overs which could have prevented the upgrade
> of systemd?
There were some leftovers yes (initscripts insserv startpar sysv-rc) but
the full-upgrade properly dropped them and let systemd upgrade. Once
full-upgrade was finished, the reboot went completely fine.
> The systemd-sysv package only provides a bunch of compat symlinks, no actual
> binaries.
Ah, right, didn't check that /sbin/init is actually a symlink.
> The actual binaries are shipped in the systemd package, which it has a
> strictly versioned dependency on.
> The systemd binary package itself has a strictly versioned dependency on
> libsystemd-shared.
Indeed... Unfortunately, the corresponding dpkg.log didn't get written,
all I know is that the system somehow rebooted by itself, the apt log is
all I have left.
That being said, it does say what happens:
Dépaquetage de libsystemd-shared:amd64 (257.7-1) sur (252.38-1~deb12u1) ...
Préparation du dépaquetage de .../9-libc6_2.41-11_amd64.deb ...
Checking for services that may need to be restarted...
Checking init scripts...
Dépaquetage de libc6:amd64 (2.41-11) sur (2.36-9+deb12u10) ...
Paramétrage de libc6:amd64 (2.41-11) ...
Checking for services that may need to be restarted...
Checking init scripts...
Restarting services possibly affected by the upgrade:
postgresql: restarting...done.
ssh: restarting...done.
exim4: restarting...done.
cron: restarting...done.
Services restarted successfully.
[... and spontaneous reboot after some time]
It's upgrading libsystemd-shared before upgrading libc6, and the
configuration of libc6 rightfully restarts some daemons, but then
systemd is at a loss because at that point libsystemd-shared is upgraded
but systemd is not (yet).
I can reproduce from a fresh bookworm system by doing the following to
force the ordering that happened on my system:
sed -i s/bookworm/trixie/ /etc/apt/sources.list
apt install base-files
apt install --download-only libsystemd-shared
cd /var/cache/apt/archives
dpkg -i locales_*
dpkg -i libsystemd-shared_*
dpkg -i libc6_*
and there it restarts cron, and the machine does not respond any more at
all. On system reset, I then get the
/sbin/init: error while loading shared libraries: libsystemd-core-252.so: cannot open shared object file: No such file or directory
error.
Setting a Pre-Depends on libc6 (>= 2.39) in the libsystemd-shared
package would help make it ordered like systemd, and avoid the libc6
configuration in-between, but there is no real guarantee that something
else won't slip in-between and try to restart a service...
Samuel
More information about the Pkg-systemd-maintainers
mailing list