Hapus sepenuhnya semua paket yang saya instal?

12

Saya menggunakan satu server Linux dengan CentOS7 diinstal untuk menguji dan menginstal beberapa alat. Dan sekarang saya tidak ingat berapa banyak paket yang saya instal.

Saya ingin menghapus semua paket itu sehingga server saya akan seperti baru seperti sebelumnya. Saya tidak ingin mencari setiap paket dan menghapus satu per satu. Apakah ada cara untuk menghapusnya hanya dengan satu perintah?

Yang satu
sumber
/var/log/yum.logmungkin membantu, itu mencantumkan nama paket dan stempel waktu. Sejauh yang saya bisa lihat, itu tidak mencantumkan paket yang ditambahkan oleh instalasi awal.
Ulrich Schwarz
File yum.log akan mencantumkan semua paket yang saya instal, tetapi bagaimana saya bisa menghapus semuanya dengan hanya 1 perintah?
The One
2
"Teknik shell standar";) sepertisudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

Jawaban:

14

Daftar semua file dalam urutan terbalik dari tanggal pemasangannya ke dalam file:

rpm -qa --last >list

Anda akan mendapatkan garis seperti

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

Pilih tanggal cutoff yang berlaku untuk Anda dan hapus semua baris yang mengikutinya. Berikan baris yang tersisa untuk dihapus, setelah menghapus bagian tanggal. Misalnya

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

Anda juga dapat mencoba yum historydan biasanya Anda mendapatkan daftar bernomor apa yang telah diinstal, seperti:

[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  

dan Anda bisa menggunakan setelahnya yum history undo 3misalnya.

Lebih detail tentang sejarah yum di sini .

labirin
sumber
0

Untuk mengembalikan setiap transaksi riwayat, Anda dapat menggunakan o-liner di bawah ini:

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

Berhati-hatilah saat menjalankan perintah ini, karena itu akan menghapus semua paket yang Anda instal! Jika Anda ingin konfirmasi, Anda dapat menghapus flag -y.

sbz
sumber