GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで特定の日時にインストールされたパッケージを削除する

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のソースからインストールされたプログラムを削除する簡単な方法

Linux
  1. Linuxで特定のリポジトリからパッケージをインストールする方法

  2. Linuxで特定のリポジトリからインストールされたパッケージを一覧表示する方法

  3. インストールしたすべてのパッケージを完全に削除しますか?

  1. Linuxにインストールされているすべてのパッケージを一覧表示する方法

  2. Linux で RPM パッケージをインストール/削除/クエリ/更新する方法 (チート シート)

  3. Linux での PHP 拡張機能のインストール

  1. Linuxにソースからプログラムをインストールする方法

  2. Linuxで.tar.gzまたは.tgzパッケージをインストールする方法

  3. LinuxでGNUStowを使用してソースからインストールされたプログラムを削除する方法