Como atualizar um sistema CentOS desconectado de uma lista de RPMs instalados?

0

Passei muito tempo procurando uma boa solução para atualizar um sistema CentOS 7 desconectado, mas ainda não encontrei uma solução adequada.

A maioria das soluções sobre como atualizar um sistema desconectado (RedHat / CentOS) lhe diz para criar algum repositório local ou usar um CD / DVD com todos os pacotes recentes.

O que eu quero é criar uma lista de pacotes instalados no sistema desconectado (usando rpm -qa por exemplo), levar essa lista para um sistema conectado e baixar todas as atualizações. Eu gasto algum tempo escrevendo um script que basicamente funciona assim. O script percorre todos os pacotes da lista e verifica se há uma atualização e, em caso afirmativo, faz o download da atualização. Então, por tão bom. O problema, no entanto, é que um pacote pode, em princípio, introduzir uma nova dependência, isto é, introduzir um novo pacote que ainda não foi instalado no sistema exsting. Então, para resolver isso, o script precisa verificar todas as dependências e, se uma nova dependência for encontrada, faça o download. Como eu não quero duplicar o yum, fiquei me perguntando se já existe algum script ou ferramenta do yum que possa ser usado para atualizações offline.

    
por martijnbrinkers 24.04.2018 / 23:21

1 resposta

0

Existe uma maneira, mas é bastante complicado e pode atrapalhar seus servidores, então seja muito cuidadoso .

Nomenclatura:

  • online : seu sistema conectado aos repositórios
  • offline : o sistema que não está conectado

Etapas:

Compacte seu banco de dados rpm do sistema offline e transfira-o para o sistema online :

cd /var/lib/rpm/
tar -cvzf /tmp/rpmdb.tgz *
scp /tmp/rpmdb.tgz root@online:/tmp

no seu sistema online ; substitua o seu rpm db pelo do sistema offline :

cp -r /var/lib/rpm{,.bak} # back up your rpmdb from your online system. Make sure not to lose this!!
rm -rf /var/lib/rpm/*
cd /var/lib/rpm
tar -xvf /tmp/rpmdb.tgz # now your online system pretends to have the rpm database from the offline system. Don't start really installing / uninstalling rpms or you'll break everything

agora simule sua atualização com download somente (eu não corri isso com o yum, mas com o zypper, mas deveria ser similar):

zypper up --download-only

Agora você pode buscar todos os pacotes baixados e eles devem ser suficientes para atualizar seu sistema offline

Agora restaure sua máquina online :

rm -rf /var/lib/rpm
cp -r /var/lib/rpm{.bak,}
    
por 25.04.2018 / 12:34

Tags