Aquí hay un ejemplo específico usando "httpd" como paquete para descargar e instalar. Este proceso se probó tanto en CentOS6 como en CentOS7.
Instale las cosas que necesita y haga un lugar para colocar los RPM descargados:
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
Descargue los RPM. Esto utiliza el truco de raíz de instalación sugerido aquí para forzar una descarga completa de todas las dependencias ya que no hay nada instalado en esa raíz vacía. Yum creará algunos metadatos allí, pero los vamos a tirar a la basura. Tenga en cuenta que para CentOS7 releasever
sería "7".
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
Sí, esa era la versión pequeña. ¡Deberías haber visto el tamaño de las descargas de repositorio completo!
Genere los metadatos necesarios para convertir nuestra nueva pila de RPM en un repositorio YUM y limpiar lo que ya no necesitamos:
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
Configure el directorio de descarga como un repositorio. Tenga en cuenta que para CentOS7 la gpgkey se llamaría "7" en lugar 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 las dependencias que faltan:
# repoclosure --repoid=offline-httpd
No he descubierto por qué en CentOS7 esto informa cosas como libssl.so.10(libssl.so.10)(64bit)
faltar httpd-tools
cuando openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(el proveedor de esa biblioteca) está claramente presente en el directorio. Aún así, si ve algo que obviamente falta, esta podría ser una buena oportunidad para volver y agregarlo usando el mismo yum install --downloadonly
método anterior.
Cuando esté desconectado o después de copiar el /var/tmp/httpd
directorio del repositorio al otro servidor, configure el repositorio allí:
# 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
¡Ojalá no falten dependencias!