Tengo un servidor con conectividad de red, donde puedo usar "yum install $ PACKAGE".
Quiero un comando yum, como yum cache-rpms $PACKAGE $DIRECTORYtal, para que todos los archivos RPM requeridos se descarguen a $ DIRECTORY, que también tendrá un archivo ( Install.sh) que indica el orden en el que instalar estos RPM, en muchos otros servidores sin conectividad de red.
Install.shincluso puede ser un script de shell, que tiene el mismo comportamiento que yum install $PACKAGE, excepto que no usará la red, sino que solo lo hará $DIRECTORY.
¿Posible?
Estoy buscando una solución general donde yum y RPM estén disponibles, pero por especificidad: está en un conjunto de servidores CENTOS 6.7.

Respuestas:
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:
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
releaseversería "7".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:
Configure el directorio de descarga como un repositorio. Tenga en cuenta que para CentOS7 la gpgkey se llamaría "7" en lugar de "6":
Para verificar las dependencias que faltan:
No he descubierto por qué en CentOS7 esto informa cosas como
libssl.so.10(libssl.so.10)(64bit)faltarhttpd-toolscuandoopenssl-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 mismoyum install --downloadonlymétodo anterior.Cuando esté desconectado o después de copiar el
/var/tmp/httpddirectorio del repositorio al otro servidor, configure el repositorio allí:¡Ojalá no falten dependencias!
fuente
Parece que está preguntando
yumdownloadercuál está contenido en el paqueteyum-utils. Ya hay algunas preguntas y respuestas sobre esto, consulte, por ejemplo, ¿ Descargue todas las dependencias con yumdownloader, incluso si ya está instalado? o ¿Cómo encuentro URL de paquetes con Yum?yumdownloaderdescargará los paquetes, aunque no generará un archivoInstall.shya que el orden puede determinarse por yum mismo, por lo que puede instalar los paquetes en el cuadro de destino a travésyum install ./*rpmde la carpeta con sus paquetes descargados (que debe incluir todas las dependencias en comparación con un instalación base: consulte el primer enlace anterior con respecto arepotrack)fuente
Lo necesitaba varias veces, así que automaticé la respuesta de @Steve Bonds. Solo asegúrese de definirlo
PKGcomo el paquete para instalar en ambas máquinas (Descargo de responsabilidad: para CentOS 7. Para CentOS 6, cambie el--releaseveryCentOS-7punto.máquina en línea
en máquina fuera de línea:
fuente
-yal último comando para confirmar la instalación de paquetes cuando se ejecuta en segundo plano.