นำแพคเกจทั้งหมดที่ฉันติดตั้งออกทั้งหมดหรือไม่


12

ฉันใช้เซิร์ฟเวอร์ Linux หนึ่งตัวที่ติดตั้ง CentOS7 เพื่อทดสอบและติดตั้งเครื่องมือบางอย่าง และตอนนี้ฉันจำไม่ได้ว่าติดตั้งแพคเกจจำนวนเท่าไหร่

ฉันต้องการลบแพ็คเกจทั้งหมดเพื่อให้เซิร์ฟเวอร์ของฉันเหมือนใหม่เหมือนเดิม ฉันไม่ต้องการค้นหาทุกแพ็คเกจและลบทีละชุด มีวิธีใดที่จะลบออกด้วยคำสั่งเดียว?


/var/log/yum.logอาจเป็นประโยชน์โดยจะแสดงทั้งชื่อแพ็คเกจและเวลาประทับ เท่าที่ฉันเห็นมันไม่ได้แสดงรายการแพ็คเกจที่เพิ่มโดยการติดตั้งครั้งแรก
Ulrich Schwarz

ไฟล์ yum.log จะแสดงรายการแพ็คเกจทั้งหมดที่ฉันติดตั้ง แต่ฉันจะลบทั้งหมดด้วยคำสั่งเดียวได้อย่างไร
The One

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-liner ด้านล่าง:

# 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.