¿Intentando instalar RHEL/CentOS 7/8 usando un repositorio personalizado? Este repositorio puede ser de una ISO o directorio personalizado. Vemos este error “Error populating transaction, retrying..” mientras instalamos RHEL/CentOS 7/8 si faltan paquetes rpm necesarios del repositorio requerido para la instalación.
Primero obtuve este error cuando intentaba crear una ISO RHEL/CentOS 7/8 personalizada con un conjunto de rpm personalizados, así que pensé que debería poner la solución aquí para ayudar a cualquiera que se enfrente al mismo error.
Ahora he simulado este error en un entorno donde uso kickstart y un repositorio personalizado para la instalación de RHEL/CentOS 7. Puedes habilitar la consola serial en tu configuración para recopilar los registros de la consola para una depuración posterior.
Alternativamente, también puedes habilitar SSH durante la instalación para que puedas conectarte al cliente usando SSH para verificar el progreso en lugar de conectarte a la consola GUI.
NOTA: Se recomienda configurar la red para habilitar SSH durante la instalación, ya que facilita la solución de estos problemas.
Cómo depurar “Error populating transaction anaconda is retrying”
Después de configurar el almacenamiento, verás “Starting package installation process”, luego la instalación del paquete falla con el error de reintento de anaconda que verás en la consola cuando la instalación de RHEL/CentOS falla debido a dependencias rpm que faltan en el repositorio.
Starting package installation process
Error populating transaction, retrying (1/10)
<Salida recortada>
Error populating transaction, retrying (10/10)
================================================================================
================================================================================
Error
The following error occurred while installing. This is a fatal error and
installation will be aborted.
Error populating transaction after 10 retries: failure: NetworkManager-config-
server-1.8.0-11.el7_4.noarch.rpm from updates: [Errno 256] No more mirrors to
try.
Analizando los registros de anaconda de la instalación
En mi caso, a partir de esta salida de error podemos determinar que el problema está relacionado con el rpm de NetworkManager-config
. Pero en algún otro entorno complejo, es posible que no obtengas todos los detalles en la consola, por lo que puedes verificar los registros de anaconda.
- Conéctate a la consola del servidor afectado.
- Por defecto, la instalación ocurre en la primera terminal, por lo que debemos conectarnos a cualquier otra terminal para obtener un símbolo del sistema. Presiona Alt+F2 para conectarte a la segunda terminal.
- O alternativamente, puedes configurar VSP con consola serial y luego puedes usar cualquier cliente SSH para conectarte al servidor.
- Los registros de instalación están disponibles dentro de
/tmp
y los registros relacionados con la instalación de rpm están bajo/tmp/packaging.log
- En este archivo de registro deberías ver una salida como la siguiente:
De /tmp/packaging.log
05:54:27,428 DEBUG packaging: Error populating transaction, retrying (1/10)
05:54:27,428 DEBUG packaging: Member: libXext.x86_64 0:1.3.3-3.el7 - u
05:54:27,429 DEBUG packaging: Adding Package libXext-1.3.3-3.el7.x86_64 in mode u
05:54:27,429 DEBUG packaging: Member: perl-HTTP-Tiny.noarch 0:0.033-3.el7 - u
05:54:27,430 DEBUG packaging: Adding Package perl-HTTP-Tiny-0.033-3.el7.noarch in mode u
05:54:27,430 DEBUG packaging: Member: NetworkManager-config-server.noarch 1:1.8.0-11.el7_4 - u
06:02:58,676 ERR packaging: Error populating transaction after 10 retries: failure: NetworkManager-config-server-1.8.0-11.el7_4.noarch.rpm from updates: [Errno 256] No more mirrors to try.
06:02:58,677 DEBUG packaging: file:///run/install/repo/updates/NetworkManager-config-server-1.8.0-11.el7_4.noarch.rpm: [Errno 14] curl#37 - "Couldn't open file /run/install/repo/updates/NetworkManager-config-server-1.8.0-11.el7_4.noarch.rpm"
06:02:58,677 DEBUG packaging: QUIT:
Ahora aquí vemos que el problema es bastante sencillo, es decir, NetworkManager-config-server-1.8.0-11.el7_4.noarch.rpm
no está disponible en nuestro repositorio.
¿Cómo solucionar este problema?
Para solucionar este problema, añade este rpm que falta a tu repositorio y vuelve a ejecutar createrepo para actualizar la base de datos de yum. Como sabemos que todos los registros relacionados con la instalación se almacenan en /tmp
, puedes obtener la lista de repositorios utilizados durante la instalación comprobando el contenido del siguiente directorio en el servidor donde falló la instalación.
# ls -l /tmp/yum.repos.d/
total 16
-rw-r--r--. 1 root root 93 Feb 21 09:11 ExtraPackages.repo
-rw-r--r--. 1 root root 69 Feb 21 09:11 anaconda.repo
-rw-r--r--. 1 root root 75 Feb 21 09:11 updates.repo
Aquí anaconda.repo
es el repositorio predeterminado, mientras que updates.repo
y ExtraPackages.repo
son mi repositorio adicional que estoy creando usando mi archivo kickstart. A partir del error visto en packaging.log “Couldn’t open file /run/install/repo/updates/NetworkManager-config-server-1.8.0-11.el7_4.noarch.rpm” sabemos que el rpm que falta es del repositorio de actualizaciones.
Después de haber colocado el rpm en la ruta del repositorio “updates”, actualiza la base de datos de yum ejecutando el siguiente comando
# createrepo /tu/ruta/del/repositorio/.
Esto actualizará/creará el directorio repodata dentro de /tu/ruta/del/repositorio/
Ahora puedes intentar de nuevo la instalación.
Finalmente, espero que los pasos del artículo para iniciar el proceso de instalación del paquete, solucionar el error al poblar la transacción, anaconda está reintentando en RHEL/CentOS 7/8 Linux hayan sido útiles. Por lo tanto, hazme saber tus sugerencias y comentarios usando la sección de comentarios.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.