Remover completamente todos os pacotes que instalei?

12

Eu estava usando um servidor Linux com o CentOS7 instalado para testar e instalar algumas ferramentas. E agora não me lembro de quantos pacotes eu instalei.

Eu quero remover todos os pacotes para que meu servidor fique como novo. Não quero procurar todos os pacotes e remover um por um. Existe alguma maneira de removê-los com apenas um comando?

Único
fonte
/var/log/yum.logpode ser útil, lista o nome do pacote e um carimbo de data e hora. Tanto quanto posso ver, ele não lista os pacotes adicionados pelas instalações iniciais.
Ulrich Schwarz
O arquivo yum.log listaria todos os pacotes que eu instalei, mas como eu poderia excluir todos eles com apenas um comando?
1 de
2
"Técnicas de shell padrão";) likesudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

Respostas:

14

Liste todos os arquivos na ordem inversa da data de instalação em um arquivo:

rpm -qa --last >list

Você terá linhas como

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

Escolha a data de corte que se aplica a você e exclua todas as linhas que se seguem. Dê as linhas restantes ao yum para remover, depois de remover a parte da data. Por exemplo

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

Você também pode tentar yum historye geralmente obtém uma lista numerada do que foi instalado, como:

[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  

e você pode usar depois, yum history undo 3por exemplo.

Mais detalhes sobre a história do yum aqui .

mazs
fonte
0

Para reverter todas as transações do histórico, você pode usar o o-liner abaixo:

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

Seja cauteloso ao executar este comando, porque ele removerá todos os pacotes instalados! Se você deseja confirmação, pode remover o sinalizador -y.

sbz
fonte