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-standard
ubuntu-desktop
r
答え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