
私は画像を分析するためのツールを作成しており、画像のファイルシステムに完全にアクセスできます。
インストールされているすべてのパッケージの名前とバージョン情報のリストを作成したいのですが、VM を信頼していないため、実際に実行したくありません。
のようなコマンドがあることは知っていますrpm -qa
が、ファイルを読み取るだけでデータを取得する方法がわかりません (rpm コマンドが実行しているのはこれです)。
どのような助けでも大歓迎です!
答え1
ファイルシステムから rpmdb を抽出できます: . の下にあるすべてのファイル/var/lib/rpm/
。
rpm
その後、VMを実行せずにパッケージをクエリするために使用できます。rpmdb別の偽のファイルシステム内にあります。
これを試してみたところ、rpm
デフォルトでは の下にあるデータベースを検索するようなので/usr/lib/sysimage/rpm
、次の操作を実行しました。
mkdir -p /tmp/fakeroot/usr/lib/sysimage/rpm/
scp other-machine:/var/lib/rpm/* /tmp/fakeroot/usr/lib/sysimage/rpm/
rpm --root /tmp/fakeroot -qa
ご覧のとおり、rpm
別のマシンからデータベースをコピーしたので、そのパッケージをクエリできるようになりました。