Desfazendo atualizações de software no Red Hat/Fedora/CentOS

Publicado por Davidson Rodrigues Paulo em 12/09/2007

[ Hits: 15.032 ]

Blog: http://davidsonpaulo.com/

 


Desfazendo atualizações de software no Red Hat/Fedora/CentOS



As ferramentas de administração do Fedora - incluindo Yum, Pup e Pirut - são todas basedas no formato e sistema de gerenciamento de pacotes RPM. Um segredo pouco conhecido do RPM é que ele pode ser configurado para reempacotar os arquivos de um pacote RPM durante a sua desinstalação, salvando os arquivos (possivelmente modificados) em um novo pacote RPM. O pacote RPM reempacotado incorpora quaisquer modificações que tenham sido feitas aos arquivos de configuração, scripts e arquivos de dados originalmente incluídos com o software, o que significa que é possível desfazer a desinstalação do software, restaurando o pacote para o estado em que ele se encontrava antes de ser removido.

O mecanismo de restauração (rollback) também pode desfazer processos de instalação de pacotes desinstalando os recém-instalados e, uma vez que uma atualização de software é realizada instalando uma nova versão deste e removendo a anterior, o mecanismo de restauração também pode desfazer atualizações de pacotes.

Eis um exemplo:
  • Você instala o pacote sendmail ao instalar o Fedora Core;
  • Você modifica a configuração de sendmail para atender às suas necessidades;
  • Você decide remover sendmail usando yum ou o Pirut (ou rpm, ou o Yumex);
  • Quando sendmail é desinstalado (removido), os arquivos deste pacote são recolhidos - incluindo os arquivos de configuração modificados - e salvos no pacote RPM reempacotado;
  • Depois você conclui que desinstalar sendmail foi uma má idéia. Se você reinstalar o pacote original, a configuração padrão será carregada. Ao invés disso, você pode desfazer a remoção do pacote, o que faz com que o pacote reempacotado seja instalado - incluindo os arquivos de configuração modificados.

O processo de restauração/reempacotamento está longe de ser perfeito - arquivos de dados criados e usados pelo pacote (mas não inclusos no pacote original) não são salvos no processo de reempacotamento, por exemplo, e alguns scripts RPM assumem que os pacotes são sempre atualizados para versões mais novas e nunca antigas. Não obstante, a restauração de pacotes pode ser um recurso muito útil, especialmente quando um processo de atualização faz com que algo páre de funcionar. O reempacotamento pode usar muito espaço em disco, por isso é desabilitado por padrão, e não há uma forma de habilitá-lo a realizar uma restauração a partir da linha de comando. Segue a "receita de bolo" para usar este recurso:
  1. Para configurar o Yum (e o Pup, Pirut e yum-updatesd) a reempacotar os RPM's, adicione a linha

    tsflags=repackage

    ao arquivo /etc/yum.conf;
  2. Para configurar o comando rpm a fazer a mesma coisa, adicione a linha

    %_repackage_all_erasures 1

    ao arquivo /etc/rpm/macros;
  3. Instale, remova e atualize pacotes como quiser, usando o Pup, Pirut, Yumex, yum, rpm e yum-updatesd;
  4. Se/quando você quiser restaurar o sistema para um estado anterior, faça uma atualização com o comando rpm usando a opção --rollback seguida da data/horário (a restauração é baseada em tempo porque os pacotes afetam as configurações uns dos outros - se você removeu o pacote a, então b, então c, e então retornar apenas o pacote a, algumas configurações podem ser perdidas).

Alguns exemplos:

# rpm -Uvh --rollback '9:00 am'
# rpm -Uvh --rollback '4 hours ago'
# rpm -Uvh --rollback 'december 25'


Os pacotes reempacotados são armazenados no diretório /var/spool/repackage.
Outras dicas deste autor

Como habilitar o repositório do Debian no Vyatta

Baixando todos os arquivos de uma URL com o wget

Como ser mais produtivo

Como estudar melhor e aprender mais

Colocar arquivos mostrados por um comando em um pacote .tar no Linux

Leitura recomendada

Redirecionar requisições do site da porta 80 para 443

Como restaurar um ambiente Xfce

Documentação de redes no Slackware

Fazendo o seu Asterisk contar até 100...

elementaryOS Beta 2 - Instalação com instalador atualizado

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário