You are not logged in.
I've been running unstable for some time, so I'm kind of used to strange things happening occasionally. However, this one seems persistent.
"apt upgrade" gives me the following error:
The following packages have unmet dependencies:
libelogind-compat : Conflicts: libsystemd0
E: Broken packages
However, "apt full-upgrade" runs through without problems.
"dpkg -l libelogind-compat" says I have 252.9-2 installed:
ii libelogind-compat:amd64 252.9-2 amd64 user, seat and session management library compatibility
"dpkg -l libsystemd0" says it isn't installed:
un libsystemd0 <none> <none> (no description available)
If I uninstall libelogind-compat, apt also wants to remove a whole load of stuff, including most or all of xorg. Similar if I use "apt satisfy" with the "conflicts" message. So I won't do that.
Any ideas?
Update: "dpkg -l \*systemd\*" tells me that I have systemd-standalone-sysusers and systemd-standalone-tmpfiles installed. If I try to remove them, apt also wants to remove cron and cron-daemon-common, which I also don't want to do.
Last edited by TheLancashireman (2024-04-14 11:15:09)
Offline
libelogind-compat provides libsystemd0 (by symlinking libsystemd to libelogind), so they can't be installed simultaneously.
Without seeing full output (and please use code tags for such), I can only speculate that either:
* apt wants to replace libsystemd0 with libelogind-compat or vice-versa, but it can't because 'apt upgrade' won't remove already installed packages. A 'full-upgrade' or 'dist-upgrade' will.
* Something you are trying to install or upgrade depends on libsystemd0 specifically. There shouldn't be any of that in Devuan stable, but with unstable such things may well slip through from time to time.
That's why it's called unstable, and not recommended unless you are capable of and willing to deal with occasional borkage.
If you do in fact want to switch to libsystemd0 (the implications of which are up to you to research), try installing it explicitly with aptitude. It'll give you several possible solutions, one of which will likely be removing libelogind-compat and replacing it with libsystemd0.
Aside, aptitude's dependency resolver is often smarter than apt in situations like this and is usually worth a try, but it's probably not wise to use it for e.g. a full dist-upgrade on a stable sytem as it's solutions can be a bit... odd at times.
Last edited by steve_v (2024-04-14 10:53:36)
Once is happenstance. Twice is coincidence. Three times is enemy action. Four times is Official GNOME Policy.
Offline
Thanks for the quick reply. FWIW here's the full error message:
~> sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... 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:
libelogind-compat : Conflicts: libsystemd0
E: Broken packages
The "apt upgrade" error persists even after "apt full-upgrade" succeeds, which is part of what confuses me. The other thing that confuses me is that libsystemd0 isn't installed, so can't conflict anything.
I tried "apt purge libsystemd0" in case there's something lurking, but the error remains.
Further update: I noticed that systemd-standalone-tmpfiles is in the autoremove list, so I removed it manually. Also no effect.
Last edited by TheLancashireman (2024-04-14 11:16:44)
Offline
Update #3: I removed systemd-standalone-sysusers as well, which also removed cron and cron-daemon-common. Again, no effect on the error message.
I reinstalled cron and cron-daemon-common. They pulled systemd-standalone-sysusers back in.
Offline
I think there are some dependency problems in ceres. I tried building live-isos of excalibur and ceres, and they were failing for different reasons. The ceres build failed because of the same problem you're hitting and the desktop never got installed.
In chroot I was able to add the task* packages for the desktop, but I had to switch from elogind to consolekit and I had to add libsystemd0 and keep libelogind0.
This is not a recommendation. It's just a report.
The current mess looks like this:
ii consolekit 1.2.6-3+b2 amd64 framework for defining and tracking users, sessions and seats
ii libelogind0:amd64 252.9-2 amd64 user, seat and session management library
ii libpam-ck-connector:amd64 1.2.6-3+b2 amd64 ConsoleKit PAM module
ii libpolkit-gobject-consolekit-1-0:amd64 124-2devuan1 amd64 polkit Authorization API
ii libsystemd0:amd64 255.4-1+b1 amd64 systemd utility library
ii systemd-standalone-sysusers 255.4-1+b1 amd64 standalone sysusers binary for use in non-systemd systems
Edit: Right after I posted, I decided to check if the new version of elogind was built, and it looks like it happened a couple hours ago. This should provide the right version to satisfy any libsystemd0 dependency.
Project devuan-package-builder build
elogind_255.4.1-1 (unstable): SUCCESS in 24 min:
Offline
The new version of elogind seems to have fixed the problem. Thanks to all who answered!
Offline
To add a little more here, the problem may show up again. If you purge the "systemd-standalone-sysusers" package, and pin it in apt so it does not get reinstalled, in /etc/apt/preferences.d/nosystemd like so:
Package: *systemd* systemd-* systemd-standalone-sysusers
Pin: release n=ceres
Pin-Priority: -1
And then reinstall the packages that got removed when "systemd-standalone-sysusers" was purged, it should install a compatible package called "opensysusers". This is what I did a month ago to proceed with updating as I was getting the same error message(s).
Offline
Thanks for that tip. Hopefully all will be well now.
Offline