Удалить полностью все пакеты, которые я установил?


12

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

Я хочу удалить все эти пакеты, чтобы мой сервер был как новый. Я не хочу искать каждый пакет и удалять по одному. Есть ли способ удалить их всего одной командой?


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

В файле yum.log будут перечислены все пакеты, которые я установил, но как я могу удалить их все одной командой?
The One

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например.

Подробнее об истории ням здесь .


0

Чтобы откатить каждую историю транзакций, вы можете использовать указатель ниже:

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