symlinks breaks lsb_release, but diff reports no changes?
Jeffrey Walton
noloader at gmail.com
Wed Dec 17 18:03:06 UTC 2025
On Mon, Dec 15, 2025 at 12:21 PM Jeffrey Walton <noloader at gmail.com> wrote:
>
> I'm seeing an issue on Ubuntu 22.04.5 LTS that I can't explain.
> Below, symlinks breaks lsb_release, but a diff of before/after reports
> no changes. Any help would be appreciated.
>
> First, lsb_release works:
>
> $ lsb_release -a
> LSB Version: core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
> Distributor ID: Ubuntu
> Description: Ubuntu 22.04.5 LTS
> Release: 22.04
> Codename: jammy
>
> Second, run symlinks script (as root):
>
> #!/usr/bin/env bash
>
> symlinks -r / 1>symlinks.1.txt
>
> for dir in /bin /etc /home /lib /lib32 /lib64 /media /mnt /opt /root
> /run /sbin /srv /tmp /usr /var;
> do
> # Ensure the directory exists
> test -d "${dir}" || continue
> # Skip directories that are tmpfs
> df -hT "${dir}" | grep -q tmpfs && continue
> # echo " dir: ${dir}"
> symlinks -r -d "${dir}" 1>/dev/null
> done
>
> symlinks -r / 1>symlinks.2.txt
>
> Third, try lsb_release again:
>
> $ lsb_release -a
> Traceback (most recent call last):
> File "/usr/bin/lsb_release", line 25, in <module>
> import lsb_release
> ModuleNotFoundError: No module named 'lsb_release'
>
> Fourth, diff the changes from symlinks:
>
> $ diff symlinks.1.txt symlinks.2.txt
> $
>
> Fifth, reinstall lsb-release package:
>
> $ sudo apt install --reinstall lsb-release
>
> Sixth, recheck lsb_release:
>
> $ lsb_release -a
> LSB Version: core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
> Distributor ID: Ubuntu
> Description: Ubuntu 22.04.5 LTS
> Release: 22.04
> Codename: jammy
>
> One clue is from dpkg, but I don't know if it is a red herring:
>
> $ dpkg -L lsb-release
> ...
> /usr/share/pyshared
> /usr/share/pyshared/lsb_release.py
> /usr/lib/python2.7/dist-packages/lsb_release.py
> /usr/lib/python3/dist-packages/lsb_release.py
>
> And:
>
> $ ls /usr/share/pyshared
> lsb_release.py
> $ ls /usr/share/pyshared/lsb_release.py
> /usr/share/pyshared/lsb_release.py
> $ ls /usr/lib/python2.7/dist-packages/lsb_release.py
> ls: cannot access '/usr/lib/python2.7/dist-packages/lsb_release.py':
> No such file or directory
> $ ls /usr/lib/python3/dist-packages/lsb_release.py
> ls: cannot access '/usr/lib/python3/dist-packages/lsb_release.py': No
> such file or directory
>
> $ ls -d /usr/lib/python*
> /usr/lib/python2.7 /usr/lib/python3 /usr/lib/python3.10 /usr/lib/python3.11
>
> And:
>
> $ sudo find /usr/lib -name lsb_release.py
> $
>
> I am missing something. Does anyone know what is going on?
I tracked it down to a symlink that goes missing. But I don't
understand why symlinks does not report it as a dangling link, and
then why symlinks deletes it.
First, start with a working lsb_release:
LSB Version: core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
Second, check the Python3 lsb_release (from dpkg -L symlinks):
$ ls -Al /usr/lib/python3/dist-packages/lsb_release.py
lrwxrwxrwx 1 root root 38 Mar 24 2022
/usr/lib/python3/dist-packages/lsb_release.py ->
../../../share/pyshared/lsb_release.py
$ ls /usr/share/pyshared/lsb_release.py
/usr/share/pyshared/lsb_release.py
Third, see what symlinks says about it:
$ sudo symlinks -r / | grep lsb
$ sudo symlinks -r /usr | grep lsb
$ sudo symlinks -r /usr/lib | grep lsb
$
Fourth, clean symlinks:
[See script above]
Fifth, check lsb_release again:
Traceback (most recent call last):
File "/usr/bin/lsb_release", line 25, in <module>
import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Sixth, check the lsb_release symlink again:
$ ls -Al /usr/lib/python3/dist-packages/lsb_release.py
ls: cannot access '/usr/lib/python3/dist-packages/lsb_release.py': No
such file or directory
$ ls /usr/share/pyshared/lsb_release.py
/usr/share/pyshared/lsb_release.py
So it looks like symlinks silently deleted the symlink
/usr/lib/python3/dist-packages/lsb_release.py. symlinks never
reported it as a symlink, and did not report it was deleted when
symlinks was run with the -d option. Bad tool!
I guess this should be reported to the Ubuntu folks.
Jeff
More information about the ubuntu-users
mailing list