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:
- 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;
- Para configurar o comando rpm a fazer a mesma coisa, adicione a linha
%_repackage_all_erasures 1
ao arquivo /etc/rpm/macros;
- Instale, remova e atualize pacotes como quiser, usando o Pup, Pirut, Yumex, yum, rpm e yum-updatesd;
- 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
Recuperando base de dados do RPM
Usando vários mirrors no slackpkg
Como habilitar o repositório do Debian no Vyatta
Criando backup tar multi-volume usando FIFO
Desfazendo atualização do sistema no Zenwalk Linux
Leitura recomendada
Configurando cartão de memória na porta usb, no Linux
Uniformizando tema no LXDE
Criando compartilhamentos na rede com NFS
Compartilhando CD-ROM no Samba
Alterarando a posição da barra do Unity no Ubuntu 16.04 LTS
Comentários
Nenhum comentário foi encontrado.