前回は、
"library not found"問題
インストールしたシステムを、
$ qdoc qdoc: error while loading shared libraries: libclang.so.10: cannot open shared object file: No such file or directory
前回までに紹介してきたように、
このエラーを出しているバイナリファイルをlddで調べると、
$ ldd /usr/bin/qdoc
linux-vdso.so.1 (0x00007ffe6ac7e000)
libclang.so.10 => not found
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f530f6b8000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f530f697000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f530f48b000)
...
一方、
$ ./query_depends.py -p /usr/bin/qdoc /usr/bin/qdoc needs these libraries linux-vdso.so.1 (0x00007ffd639d5000)() libclang.so.10(not found) libQt5Core.so.5(/usr/lib/libQt5Core.so.5) libpthread.so.0(/lib/libpthread.so.0) ...
一見、
この"not found"な情報は、
$ ./query_depends.py -r 'not found' | cat -n
1 not found used by these binaries
2 appstream-builder(/usr/bin/appstream-builder)
3 appstream-builder(/usr/bin/appstream-builder)
...
7 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
8 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
...
26 libxul.so(/usr/lib/firefox/libxul.so)
27 libxul.so(/usr/lib/firefox/libxul.so)
....
139 libpostgresql-sdbc-impllo.so(/opt/libreoffice7.1/program/libpostgresql-sdbc-impllo.so)
140 libpostgresql-sdbc-impllo.so(/opt/libreoffice7.1/program/libpostgresql-sdbc-impllo.so)
おやおや、
共有ライブラリのサーチパス
実はこの問題は共有ライブラリのサーチパスに由来します。というのも、
一方、
そのため、
ざっと調べたところ、
$ ./query_depends.py -r 'not found' | grep -v samba | grep -v firefox | grep -v thunderbird | \
grep -v java | grep -v libreoffice | cat -n
1 not found used by these binaries
2 appstream-builder(/usr/bin/appstream-builder)
3 appstream-builder(/usr/bin/appstream-builder)
4 appstream-builder(/usr/bin/appstream-builder)
5 appstream-util(/usr/bin/appstream-util)
6 appstream-compose(/usr/bin/appstream-compose)
7 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
8 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
9 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
10 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
11 libsmbldap.so.2(/usr/lib/libsmbldap.so.2)
12 libappstream-glib.so.8.0.10(/usr/lib/libappstream-glib.so.8.0.10)
13 Libproxy.so(/usr/lib/perl5/site_perl/auto/Net/Libproxy/Libproxy.so)
「入れるべきか、入れざるべきか……」
これくらいまで絞り込んだ"library not found"なバイナリを改めてlddで確認してみると、
一方、
$ ldd /usr/bin/appstream-builder | grep found
librpm.so.9 => not found
librpmio.so.9 => not found
librpmio.so.9 => not found
もちろん、
それならばわざわざappstream-glibのためだけに、
もっとも、
先に、
最近では、
$ sudo cat << EOF > /etc/ld.so.conf.d/append_libs.conf /usr/lib/firefox /usr/lib/thunderbird /usr/lib/samba/ /usr/java/jdk/lib /usr/java/jdk/lib/server /opt/texlive/2019/lib /opt/libreoffice/program EOF $ sudo ldconfig -v $ rm -f depends.sql3 $ sudo ./get_depends.py
もっとも上述のように、
