O que é equivalente ao 'apt-get purge' do Fedora?

45

No Debian, há pelo menos duas maneiras de excluir um pacote:

  • apt-get remove pkgname
  • apt-get purge pkgname

O primeiro preserva os arquivos de configuração de todo o sistema (ou seja, aqueles encontrados em " / etc "), enquanto o segundo não.

Qual é o equivalente do Fedora à segunda forma purge? Ou talvez eu deva perguntar se yum remove pkgnamerealmente preserva os arquivos de configuração.

tshepang
fonte

Respostas:

27

yum remove não é garantido para preservar arquivos de configuração.

Conforme declarado no yum HOWTO :

De qualquer forma, a sintaxe do comando para remoção de pacotes é:

# yum remove package1 [package2 package3...]

Como observado acima, ele remove o pacote1 e todos os pacotes na árvore de dependências que dependem do pacote1, possivelmente irreversivelmente no que diz respeito aos dados de configuração .

Atualizar

Como James aponta, você pode usar o rpm -ecomando para apagar um pacote, mas salvar cópias de backup dos arquivos de configuração que foram alterados.

Para obter mais informações, consulte Usando o RPM para apagar pacotes . Em particular:

Ele verifica se algum dos arquivos de configuração do pacote foi modificado. Nesse caso, ele salva cópias deles.

Justin Ethier
fonte
4
Isso não é verdade, "rpm -e" removerá os arquivos de configuração se eles não tiverem sido alterados. Se eles foram alterados, são movidos para <nome do arquivo> .rpmsave e não excluídos.
James Antill
9

Encontrei esta resposta para uma pergunta duplicada no ServerFault intitulada: yum equivalente a "apt-get purge" que fornece o único método que eu já vi que pode fazer o que apt-get purge <pkg>faz no Ubuntu / Debian.

for package in package1 package2 package3
do
  echo "removing config files for $package"
  for file in $(rpm -q --configfiles $package)
  do
    echo "  removing $file"
    rm -f $file
  done
  rpm -e $package
done

O único outro método que posso conceber aqui é analisar a saída yum remove <pkg>e excluir manualmente todos os arquivos que possam ter sido modificados. Por exemplo, quando instalei recentemente o RPM do ElasticSearch para 2.3, modifiquei vários arquivos associados a esse RPM. Quando o removi com o YUM, você receberá mensagens na saída assim:

warning: /etc/sysconfig/elasticsearch saved as /etc/sysconfig/elasticsearch.rpmsave
warning: /etc/elasticsearch/logging.yml saved as /etc/elasticsearch/logging.yml.rpmsave
warning: /etc/elasticsearch/elasticsearch.yml saved as /etc/elasticsearch/elasticsearch.yml.rpmsave

Eles podem ser excluídos após a remoção usando o YUM com script ou manualmente.

Referência

slm
fonte
Isso pode ser um plugin dnf interessante ....
mattdm
@mattdm - esse problema surgiu de tempos em tempos, seria bom se pudéssemos fazer isso no mundo "RPM".
slm
1

Não há equivalente para "limpar", basta usar yum remove package.

Além disso, você pode usar yum reinstall packagequando quiser reinstalar algum pacote ...


fonte
1
Na verdade, como explicado na resposta de Justin Ethier , yum removeé equivalente a apt-get purge.
Gilles 'SO- stop be evil'
6
Justin Ethier, do @Gilles, afirma que yum remove" não é garantido preservar os arquivos de configuração". Não é o mesmo que dizer que é garantido que não preservará os arquivos de configuração (o que significaria que é equivalente a apt-get purge). Você está fazendo essa afirmação (muito) mais forte?
Eliah Kagan 30/08/2012
@EliahKagan É assim que eu entendo o yum howto que Justin cita. Não tenho certeza se está certo, o CentOS parece estar dizendo o contrário.
Gilles 'SO- stop be evil' em
1
Eu acho que é um comportamento indefinido. Yum pode ou não preservar os arquivos de configuração.
M0j0 7/11
-2

Se você deseja limpar os arquivos de configuração de um programa que você removeu recentemente através de um sistema RPM, tudo o que você precisa fazer é digitar: yum clean all

Jared
fonte
2
Isto está incorreto. O "yum clean all" apenas limpa metadados armazenados em cache, listas de espelhos, etc., usados ​​pelo yum. Não faz nada para arquivos de configuração.
M0j0 7/11