Descargar TODAS las rpm para un producto

8

Tengo dos máquinas CentOS, una caja 6.3 ( A ) y otra CentOS 6.1. ( B )

6.3 box es con conexión a internet, 6.1 box es sin conexión a internet.

Quiero descargar TODAS las dependencias de un producto en el Cuadro A, luego copiar esas n Cuadro B e instalar el producto.

Lo intenté con

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .

Luego deshabilité todos los repositorios (con --disablerepo), excepto mi repositorio, e instalé el producto en la misma máquina (Cuadro A). Sin errores.

  • yum install *product*

Ahora, cuando copié este repositorio en el Cuadro B e intenté instalarlo con el mismo comando, comienza a instalarse, pero luego da muchos errores como a continuación:

Error: Dependencia perdida: el paquete php-ldap-5.1.6-27.el5_5.3.x86_64 (instalado) necesita libldap-2.3.so.0 () (64 bits)

¿De alguna manera puedo lograr lo que necesito?

ACTUALIZAR

Cuando comencé a trabajar con la opción sugerida por @rkosegi ( --releasever = versión ), me dieron una nueva caja con la misma versión CentOS 6.1 ( C )

Intenté los comandos mencionados anteriormente en el Cuadro C y copié el repositorio en el Cuadro B. Aún así falló. La razón: aunque ambos cuadros son 6.1, esos no son idénticos ( uname -r devuelve cadenas diferentes).

Yum no descarga dependencias, si ya están instaladas. Por lo tanto, mi repositorio no contenía algunas de las dependencias (incluido OpenJDK). Entonces, cuando trato de instalar en Box B, falla.

¡Muy frustrante!

Pero luego encontré el comando ' repotrack ' aquí .

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

Tengo muchos más archivos que con yum, espero que sirva.

Actualizaré, una vez que intente instalar.

ACTUALIZAR

El repotrack de comandos no funcionó para mí. Cuando intenté instalar desde el repositorio creado con 'repotrack', obtuve los siguientes errores:

Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
       Requires: perl = 4:5.10.1-127.el6
       Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
       Requires: audit-libs = 2.2-2.el6
       Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           audit-libs = 2.1.3-3.el6

Intenté eliminar estos dos archivos de la carpeta y reconstruir el repositorio con 'createrepo'. Dio otro conjunto de errores.

No estoy seguro de qué opciones tengo en este momento ...

Atul Acharya
fuente
No hay CentOS "6.1". es solo CentOS 6 actualizado hasta el momento en que se cortó RHEL 6.1, probablemente con muchas actualizaciones desde entonces.
vonbrand

Respuestas:

1

Si tiene que hacer esto mucho, es posible que desee tomarse el tiempo para configurar Spacewalk . Automatizará la creación del repositorio y lo completará con los paquetes apropiados (o, si lo desea, todos). Sin mencionar todo lo demás que hace ...

Michael Hampton
fuente
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Debe indicar a yum que descargue del repositorio de la misma versión que la máquina de destino (6.1)

También asegúrese de que la máquina (6.3) que realizará la descarga no haya instalado algunas de las dependencias que faltan en la máquina de destino (6.1)

rkosegi
fuente
Eso no necesariamente funcionará, ya que obtendrá los paquetes necesarios para instalar en ese sistema . Ese podría muy bien ser un conjunto muy diferente al requerido en una máquina (probablemente desactualizada) no conectada en red.
vonbrand
0

Si no puede obtener una máquina "limpia", debe buscar manualmente las partes faltantes con yum provideso

usted tiene que ir a través de sus revoluciones por minuto que ya están en ti Repo y consulta sus dependencias: rpm -qp --requires RPM. Si esa lista muestra algo nuevo que no forma parte de su repositorio, debe agregarlo.

Nils
fuente