LinuxVMに多くのアプリケーションをインストールしてテストします。テストが終了したら、使用されなくなったインストール済みパッケージを削除します。多くのアプリケーションを頻繁にインストールするため、パッケージを1つずつ手動で削除するのは少し時間がかかる作業です。また、不要なパッケージをアンインストールするのを忘れることもあります。私のような人なら、Linuxで特定の日時にインストールされているすべてのパッケージを見つけて削除する簡単な回避策を次に示します。
ご存知かもしれませんが、インストール日でソートされたインストール済みパッケージのリストを見つけることができます 次のコマンドのいずれかを使用して、さまざまなLinuxディストリビューションで。
Arch Linux、EndeavourOS、Manjaro Linuxの場合:
$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
Fedora、RHEL、CentOS、AlmaLinux、Rocky Linuxの場合:
$ sudo rpm -qa --last
Debian、Ubuntu、Linux Mint、およびPop OSの場合:
$ grep " install " /var/log/dpkg.log
上記のコマンドは、すべての日付にインストールされたすべてのパッケージを一覧表示します。ただし、特定の日時にインストールされたパッケージを見つけて削除することに関心があります。 のみ。
%yyyy-%mm-%dd
を使用できます grepのパラメータ 特定の日時にインストールされているすべてのパッケージを一覧表示するコマンド。
たとえば、次のコマンドは、2021年9月14日にDebian11ブルズアイシステムにインストールされたすべてのパッケージを表示します。
$ grep "2021-09-14.*.install " /var/log/dpkg.log
出力例:
2021-09-14 06:51:51 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:14:14 install hello:amd64 <none> 2.10-2 2021-09-14 11:17:13 install hello:amd64 <none> 2.10-2 2021-09-14 11:17:13 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:22:29 install hello:amd64 <none> 2.10-2 2021-09-14 11:22:29 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:41:16 install nano:amd64 5.4-2 5.4-2 2021-09-14 11:41:17 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:41:17 install vim-runtime:all 2:8.2.2434-3 2:8.2.2434-3 2021-09-14 11:41:18 install vim:amd64 2:8.2.2434-3 2:8.2.2434-3

上記の出力でわかるように、 tmpreaperをインストールしました 、 vim およびナノ パッケージ。
ログローテーションが有効になっている場合、/var/log/dpkg.log
の内容 ファイルが削除されます。その場合、次のコマンドを使用して以前のインストールログファイルを表示できます:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
出力からインストール日時とアーキテクチャの詳細を除いて、パッケージ名のみを一覧表示する場合は、次のコマンドを実行します。
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1
これで、指定された日付にインストールされたパッケージ名のみが表示されます:
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim

これで、指定された日付にインストールされたすべてのパッケージの名前がわかりました。
特定の日にインストールされたすべてのパッケージをアンインストールするには、それぞれのapt
を追加するだけです。 xargs
を使用したコマンド引数 前のコマンドの最後に。
次のコマンドはユーザーの確認を求めないことに注意してください パッケージを削除する前に。したがって、ドライランを実行することは常に良い習慣です。 実際のコマンドを実行する前に、どのパッケージが削除されるかを確認します。
パッケージの削除プロセスをシミュレート(ドライラン)するには、-s
を追加するだけです。 または--simulate
以下のように。
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y -s
上記のコマンドは、パッケージの削除プロセスをシミュレートするだけで、パッケージを削除することはありません。
削除するパッケージを見つけたら、-s
を指定せずに上記のコマンドを再実行します。 または--simulate
オプション:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y
ログローテーションが有効になっている場合は、代わりに次のコマンドを実行してください:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

今回は、指定された日にインストールされたパッケージがシステムから削除されます。
関連記事:
- Linuxで未使用のパッケージを見つけて削除する方法
- CentOS、Fedoraの特定のリポジトリからインストールされたパッケージを削除する方法
- ArchLinuxでパッケージグループをインストールおよび削除する簡単な方法
- Linuxのソースからインストールされたプログラムを削除する簡単な方法