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 ...
fuente
Respuestas:
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 ...
fuente
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)
fuente
Si no puede obtener una máquina "limpia", debe buscar manualmente las partes faltantes con
yum provides
ousted 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.fuente