以前のバージョンの Fedora でコンパイルしたプログラムがあり、アップグレード後に突然壊れてしまいました。当時は更新が受けられなくなっていた古いバージョンの Fedora を実行していたので、アップグレードすることにしました。
予想外だったのは、共有ライブラリが不足しているためにバイナリが実行に失敗したことです。
error while loading shared libraries: libboost_filesystem.so.1.66.0:
cannot open shared object file: No such file or directory
必要なパッケージはインストールされましたが、バージョンが変更されていました:
Package boost-filesystem-1.69.0-9.fc31.x86_64 is already installed.
問題は、プログラムが の特定のバージョンにリンクされていたことですlibboost_filesystem.so
。
プログラムをソースから再構築したところ、すべて正常に動作しました。
バイナリを自動的にテストして、実行されている特定のプラットフォームですべての共有ライブラリの依存関係が満たされているかどうかを確認するには、どのようなオプションが利用できますか?