Aqui está um exemplo específico usando "httpd" como o pacote para baixar e instalar. Este processo foi testado no CentOS6 e no CentOS7.
Instale o material que você precisa e crie um local para colocar os RPMs baixados:
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
Faça o download dos RPMs. Isso usa o truque installroot sugerido aqui para forçar um download completo de todas as dependências, já que nada está instalado nessa raiz vazia. O Yum irá criar alguns metadados lá, mas vamos jogar tudo fora. Note que para o CentOS7 releasever
seria "7".
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
Sim, essa foi a versão pequena. Você deveria ter visto o tamanho dos downloads full-repo!
Gere os metadados necessários para transformar nossa nova pilha de RPMs em um repositório YUM e limpar as coisas que não são mais necessárias:
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
Configure o diretório de download como um repositório. Note que para o CentOS7 o gpgkey seria nomeado "7" em vez de "6":
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Para verificar as dependências ausentes:
# repoclosure --repoid=offline-httpd
Eu não entendi porque no CentOS7 isso relata coisas como libssl.so.10(libssl.so.10)(64bit)
ausente de httpd-tools
quando openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(o provedor dessa biblioteca) está claramente presente no diretório. Ainda assim, se você ver algo obviamente ausente, essa pode ser uma boa chance de voltar e adicioná-lo usando o mesmo método yum install --downloadonly
acima.
Quando estiver off-line ou depois de copiar o diretório /var/tmp/httpd
repo para o outro servidor, configure o repo lá:
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# yum --disablerepo=\* --enablerepo=offline-httpd install httpd
Espero que não haja dependências ausentes!