システム全体のバックアップからインストールされたパッケージのリストを生成するには?

システム全体のバックアップからインストールされたパッケージのリストを生成するには?

Debian システムを実行している場合は、次のコマンドを実行してインストールされたパッケージのリストを取得できます。

dpkg --get-selections > packages.lst

しかし、今は作業システムのルートパーティションのフルバックアップ(フルシステムバックアップ)しかありません。このファイルからインストールされたパッケージのリストをどのように生成できますか?

答え1

chrootを使用してdpkgを実行するのが最も簡単な方法です。バラよりhttps://superuser.com/a/417004/20798chrootで/proc、および利用可能な方法を学びます/sys/dev

バックアップの外部で動作する Debian システムがあるので、おそらく次のことができます。

dpkg --admindir=dir --get-selections

デフォルト値dirなので、/var/lib/dpkgバックアップパスを/var/lib/dpkg


どのパッケージが手動でインストールされたのか、どのパッケージが依存関係を満たすためにインストールされているのかは表示されませんdpkg --get-selections。そのため、必要なパッケージの新しいバージョンには、他の依存関係がある場合や必要なくなったときに自動的に削除する必要があります。手動でインストールされたパッケージをクリアしました)。

ラベリングを容易にするために適性を使用してください。すべて自動的にインストールし、保持したいアイテムが自動的に削除されなくなるまで、一部のパッケージを手動インストールとして選択して表示します。build-essential、および対応するDebianなどの大規模なメタパッケージから始めてください。 [適性]で、パッケージのリバース依存関係(このパッケージが依存するパッケージ)を表示するには、クリックしてください。ubuntu-standardubuntu-desktopr

答え2

ピーター方法より良いが/var/lib/dpkg/status必要ではないものを解析することもできますchroot

 $ perl -00ne 'if(/: install/){/Package:\s*(\S+)/ && print "$1\n"}' /var/lib/dpkg/status

マイコンピュータは同じパッケージのリストを返しますdpkg --get-selections | awk '$NF=="install"{print $1}'awkそれ以外の場合は削除されたパッケージも表示されるため、解析が必要です)。

答え3

以下を使用してパッケージを一覧表示できます。

awk '/Package:/ {print $2}' /var/lib/dpkg/status

関連情報