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

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

CentOS7がインストールされているLinuxサーバーを使用して、いくつかのツールをテストしてインストールします。今、どのくらいのパッケージをインストールしたか覚えていません。

私のサーバーが新しいものと同じようにこれらのパッケージをすべて削除したいと思います。各パッケージを検索して1つずつ削除したくありません。 1つの命令で削除する方法はありますか?

答え1

インストール日の逆の順序で、すべてのファイルをファイルとしてリストします。

rpm -qa --last >list

あなたは次のような行を得るでしょう

atop-2.1-1.fc22.x86_64                        Wed Apr 13 07:35:27 2016
telnet-server-0.17-60.fc22.x86_64             Mon Apr 11 20:10:43 2016
mhddfs-0.1.39-3.fc22.x86_64                   Sat Apr  9 21:26:06 2016
libpcap-devel-1.7.3-1.fc22.x86_64             Fri Apr  8 09:40:43 2016

あなたに適用される期限を選択し、それ以降のすべての行を削除します。日付部分を削除したら、残りの行をyumに割り当てて削除します。例えば

sudo yum remove $(awk '{print $1}' <list)

答え2

を試してみることもできます。yum history通常、次のようにインストールされている項目の番号付きリストが表示されます。

[root@localhost ~]# yum history
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
ID | Login user               | Date and time    | Action(s)      | Altered
 3 | root <root>              | 2011-09-14 14:36 | Install        |    1   
 2 | root <root>              | 2011-09-12 15:48 | I, U           |   80   
 1 | System <unset>           | 2011-09-12 14:57 | Install        | 1025  

yum history undo 3たとえば、後で使用できます。

Yum!の歴史の詳細ここ

答え3

過去の取引をすべてロールバックするには、次の o-liner を使用できます。

# yum history list|awk '$1 ~ /[0-9]+/ {print $1}'| while read a; do yum history undo -y $a; done

このコマンドを実行すると、インストールされているすべてのパッケージが削除されます。確認するには、-yフラグを削除してください。

関連情報