Видалити повністю всі встановлені нами пакети?


12

Я використовував один сервер Linux із встановленим CentOS7 для тестування та встановлення деяких інструментів. І зараз я не пам'ятаю, скільки пакетів я встановив.

Я хочу видалити всі ці пакети, щоб мій сервер був таким же, як і раніше. Я не хочу шукати кожен пакет і видаляти один за одним. Чи є спосіб видалити їх лише однією командою?


/var/log/yum.logможе бути корисним, у ньому перераховано і назва пакету, і часова марка. Наскільки я бачу, він не перелічує пакети, додані під час початкових встановлень.
Ульріх Шварц

Файл yum.log перелічить усі встановлені мені пакети, але як я можу видалити їх усі лише з 1 командою?
Один

2
"Стандартні методи оболонки";) на кшталтsudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ульріх Шварц

Відповіді:


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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.