Acredito que as duas respostas acima produzirão resultados diferentes:
Caso A) [como mostrado acima]
rpm -qa > to_be_installed; while read -r package; do yum -y install "$package"; done < to_be_installed
Caso B) [como mostrado acima]
yum list installed | awk '{print $1}' > to_be_installed; while read -r line; do yum -y install "$line"; done < to_be_installed
No caso A) rpm -qa retornará o nome "completo" do rpm, incluindo as informações da versão.
No caso B) o nome do pacote (com o sufixo da arquitetura) está na primeira coluna, versão na segunda coluna.
Assim, no caso A, você obtém todos os rpms atualmente instalados baixados.
No caso B, você obterá todas as versões MAIS RECENTES dos pacotes (para o seu lançamento) baixadas.
O outro grande problema para tentar obter atualizações offline é que o switch --resolve no yumdownloader não funciona corretamente (não resolve todas as dependências).
O procedimento que estou usando é:
- obtenha a máquina com meus pacotes instalados reais conectados ao
internet
- se eu pretendo atualizar, então eu atualizo esta máquina
da internet
-
o ato de realmente atualizar usando o yum faz duas coisas
i) obtém todas as versões do meu rpms atualizadas AND
ii) resolve todas as dependências de pacotes
-
Então
yumdownloader rpm -qa
--destdir = / caminho / rpm_updates
Não consigo criar um repositório baseado em arquivo local fora do diretório /path/rpm_updates
, colocar isso em um USB e atualizar uma máquina (offline) dessa lista de rpms.