続・玩式草子 ―戯れせんとや生まれけん―
第31回 共有ライブラリと依存関係[3]
前回は,
"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)
おやおや,
共有ライブラリのサーチパス
実はこの問題は共有ライブラリのサーチパスに由来します。というのも,
正確に言うと,
一方,
$LD_
そのため,
ざっと調べたところ,
$ ./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は,
それならばわざわざ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
もっとも上述のように,
バックナンバー
続・玩式草子 ―戯れせんとや生まれけん―
- 第41回 SpamAssasinと最近の迷惑メール事情
- 第40回 Plamo Linux 7.4と赤の女王仮説
- 第39回 お久しぶりのSpamAssasin
- 第38回 HDDトラブルは突然に[その2]
- 第37回 HDDトラブルは突然に[その1]
- 第36回 Days of WINE and Struggles again[5]
- 第35回 Days of WINE and Struggles again[4]
- 第34回 Days of WINE and Struggles again[3]
- 第33回 Days of WINE and Struggles again[2]
- 第32回 Days of WINE and Struggles again[1]