Tengo un servidor con conectividad de red, donde puedo usar "yum install $ PACKAGE".
Quiero un comando yum, como yum cache-rpms $PACKAGE $DIRECTORY
tal, 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.sh
incluso 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
releasever
serí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-tools
cuandoopenssl-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 --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í:¡Ojalá no falten dependencias!
fuente
Parece que está preguntando
yumdownloader
cuá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?yumdownloader
descargará los paquetes, aunque no generará un archivoInstall.sh
ya que el orden puede determinarse por yum mismo, por lo que puede instalar los paquetes en el cuadro de destino a travésyum install ./*rpm
de 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
PKG
como el paquete para instalar en ambas máquinas (Descargo de responsabilidad: para CentOS 7. Para CentOS 6, cambie el--releasever
yCentOS-7
punto.máquina en línea
en máquina fuera de línea:
fuente
-y
al último comando para confirmar la instalación de paquetes cuando se ejecuta en segundo plano.