サードパーティがコンパイルしたバイナリがあります。ここで必要なすべての依存関係を知る必要があります。すべてが表示されるかどうかわかりませんldd
。バイナリはGStreamerといくつかのコーデックパッケージを使用すると確信していますが、ldd
GStreamerのみが表示され、コーデックパッケージは表示されません...
これを正しく実行する方法についてのアイデアはありますか?
答え1
ライブラリは、特定の環境、コマンドライン引数、構成オプション、さらには月のフェーズに応じて実行時にロードできます。ライブラリ自体も他のライブラリに依存できます。したがって、バイナリが内部で何をしているのかわからない場合、実際に必要なものが何であるかを判断することは不可能です。
答え2
ldd
良いスタートです。その後、バイナリを実行してstrace -fo /tmp/strace.log
アプリケーションが何を見つけようとしているのかを確認できます。
何から始まりますかgrep
?ENOENT
いいえ発見する。
アプリケーションに付属のドキュメントと実行ログ(利用可能な場合)も表示できます。
答え3
lddのみ表示リンク依存関係、つまりプログラムを正常に実行するのに実際に必要なものは何も表示せず、プログラムの実行に必要なものだけを表示します。
パッケージマネージャを使用して依存関係の解決を実行する必要があります。