Bug#945582: systemd: Upgrade fails due to missing library libsystemd-shared-241.so

Graham Cobb g+debian at cobb.uk.net
Wed Nov 27 18:06:40 GMT 2019


On 27/11/2019 16:42, Ansgar wrote:
> On Wed, 2019-11-27 at 15:22 +0000, Graham Cobb wrote:
>>> I suspect there are some old binaries (from systemd-241) around for
>>> some reason.
>>
>> That does seem to be the case.
> 
> Did you ever (a) install systemd yourself, or (b) tried to convert the
> system to merged-/usr (for example with the "usrmerge" program from the
> package of the same name), or (c) copied these files manually there
> (maybe something else expected them in /usr)?

No. I am sure I didn't do any of those things.

> 
> That are the only three ways I currently can come up with how to end
> with the files there.

I have checked my online snapshot backups (these only go back 3 months)
and I can see that the /usr/bin/systemd-machine-id-setup and
/bin/systemd-machine-id-setup versions of the file are both present in
all the snapshots.

Also, in all but today's backup,
/usr/lib/systemd/libsystemd-shared-241.so and
/lib/systemd/libsystemd-shared-241.so are both present, but are different.

That would be consistent with assuming the /usr versions got created
some time before the upgrade to 241-7 and the non-/usr versions then got
upgraded to 241-7 (slightly different but still 241).

I will see if I can find anything other backups, but we may never know,
I guess.

> 
> What is the output from
> 
>   sha256sum /usr/bin/systemd-machine-id-setup

# sha256sum /usr/bin/systemd-machine-id-setup
681145a9d0aefd9289281118ee8dd72ce0cad560b768149dfc96d3e5d338da8e
/usr/bin/systemd-machine-id-setup

>   readelf -d /usr/bin/systemd-machine-id-setup | grep RUNPATH

# readelf -d /usr/bin/systemd-machine-id-setup | grep RUNPATH
 0x000000000000001d (RUNPATH)            Library runpath: [/lib/systemd]

> We could check if that binary is identical to one provided by Debian;

I am guessing it would be the 241-5 version as the dates are consistent.

> the `readelf` command should list `/lib/systemd` as a directory where
> the binary looks for shared libraries (it not being `/usr/lib/systemd`
> is the reason it failed).
> 
>> I note that dpkg -S can find packages responsible for the /bin
>> executables but not the /usr/bin ones:
>>
>> # dpkg -S /bin/systemd-machine-id-setup
>> systemd: /bin/systemd-machine-id-setup
>> # dpkg -S /usr/bin/systemd-machine-id-setup
>> dpkg-query: no path found matching pattern /usr/bin/systemd-machine-id-setup
> 
> Note that on a merged-/usr system that would still be the case as dpkg
> doesn't care about the /bin -> /usr/bin symlink and just puts the file
> into /bin, following the symlink.  dpkg's database would still record
> the file under /bin.
> 
> Ansgar
> 



More information about the Pkg-systemd-maintainers mailing list