きっかけは FreeBSD 上で portupgrade をしたことに始まる。このパターンは結構多い。 今回は,実はアップデート自体には全く問題はなかった。 しかし,その後,急に多くのアプリが動かなくなった。 吐き出すエラーは
ld-elf.so.1: /usr/local/lib/libssl.so.11: version XXXXXX required by YYYYYY not foundという感じのもの(ここで XXXXXX や YYYYYY はバージョンやこのライブラリを使ってるアプリやら別のライブラリやら)
これが1個や2個ならいいが,サーバーによってはルート権限で実行もできなくてほとほと困ってしまった。
ちょっと調べると,この「libssl.so.11」は「openssl-1.1.1w」でインストールされるものだった。 これは,FreeBSD では「/usr/ports/security/openssl111/」でインストールできる。 実は少し前までは「openssl」といえばこのバージョンだったが,ちょっと前にデフォルトバージョンが「3.0.x」に変わっていた。 そのため,openssl をアップデートした際に,v.1.1.1w から v.3.0.x に上がってしまい,ライブラリが libssl.so.12 になっていた。 結果として openssl-1.1.1w でインストールされた libssl.so.11 を使ってるアプリケーションソフトでエラーが起こったみたい。
そこで,どのアプリが libssl.so.11 を使っているかをチェックしてみた。 それには以下のようにする。
# pkg shlib -qR libssl.so.11
libevent-2.1.12
librtmp-2.4.20190330
rtmpdump-2.4.20190330
python27-2.7.18_2
p5-Net-SSLeay-1.92
w3m-0.5.3.20230129
..........