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


12

いくつかのツールをテストおよびインストールするために、CentOS7がインストールされた1つのLinuxサーバーを使用していました。そして今、私はインストールしたパッケージの数を覚えていません。

私のサーバーが以前のように新しいものになるように、すべてのパッケージを削除したいです。すべてのパッケージを検索して、1つずつ削除したくありません。1つのコマンドだけでそれらを削除する方法はありますか?


/var/log/yum.log役立つかもしれませんが、パッケージ名とタイムスタンプの両方をリストします。私が見る限り、最初のインストールで追加されたパッケージはリストされていません。
ウルリッヒ・シュワルツ

yum.logファイルには、インストールしたすべてのパッケージがリストされますが、1つのコマンドだけでそれらをすべて削除するにはどうすればよいですか?
ワン

2
「標準的なシェルテクニック」;)のようなsudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

回答:


14

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

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)

7

また、試してみることができ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の履歴の詳細については、こちらをご覧ください


0

すべての履歴トランザクションをロールバックするには、以下のoライナーを使用できます。

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

このコマンドを実行すると、インストールされているすべてのパッケージが削除されるため、注意してください!確認が必要な場合は、-yフラグを削除できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.