Linux バイナリをそのすべての依存関係とともにラップして別のシステムで使用できるツールはどれですか?

Linux バイナリをそのすべての依存関係とともにラップして別のシステムで使用できるツールはどれですか?

このツールが存在することは知っていますが、Google の検索用語を思い出せません。

私は、動的ライブラリの依存関係を持つ Linux 上のバイナリを受け取り、そのバイナリを chroot して環境のローカル コピーにラッパーし、そのディレクトリを新しいマシンにコピーして、すべての動的ライブラリがそのディレクトリにあり、バイナリがそれらを見つけることができるようにするツールを探しています。

どのようなツールをお探しですか?

答え1

あなたが探しているのはおそらくスタティファイアhttp://statifier.sourceforge.net) そしてアーミンhttp://www.magicermine.com)。

Statifier はフリーソフトウェアですが、Ermine はプロプライエタリソフトウェアです。

ファイルを作成したディストリビューションでのみ使用したい場合は、AppImageKit (http://www.portablelinuxapps.org

答え2

「すべての」依存関係を表示するツールは「ldd」と呼ばれます。ldd とパッケージャーを組み合わせたものは知りません。

なぜ all を引用符で囲むのでしょうか? ldd は起動時に依存関係を表示するためです。バイナリをチェックして、必要なライブラリとしてバイナリにハードコードされているものを確認し、満たされたものを表示します。ただし、バイナリは実行中に常に他のライブラリを要求することができます。

それに加えて、バイナリは特定の既知の場所にコンパイルされた構成ファイルを呼び出している可能性があります。Ldd はここでは何もできません。

おそらく、strace のようなものが必要で、動的な行だけでなく、アプリがアクセスするすべてのファイルを確認する必要があるでしょう。

関連情報