Error de metadatos AppStream en CentOS 8: cómo solucionarlo | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Cómo solucionar el error de metadatos del repositorio AppStream en CentOS 8

Introducción

Al ejecutar una actualización o intentar instalar un paquete en CentOS 8, el gestor de paquetes puede detenerse con este error:

Failed to load metadata for 'AppStream' repo: Cannot prepare internal mirror list: No URLs in mirror list.

Esto no es un fallo de red ni un problema temporal de los mirrors. Es el resultado esperado de que CentOS 8 haya llegado al final de su vida útil. Este artículo explica por qué ocurre el error, cuál es la solución correcta a largo plazo y cómo devolver el sistema en línea temporalmente si aún necesita acceder a él.

Por qué ocurre este error

CentOS Linux 8 llegó al final de su vida útil el 31 de diciembre de 2021. Después de esa fecha, el servicio de listas de mirrors para CentOS Linux 8 se retiró y los paquetes se trasladaron al servidor de archivo vault.centos.org.

Los archivos de repositorio del sistema siguen apuntando a mirrorlist.centos.org. Como ese servicio ya no devuelve ninguna URL, la lista de mirrors vuelve vacía, y el gestor de paquetes no tiene ninguna dirección desde la cual descargar los metadatos. Ese es el mensaje que ve.

Info

Los paquetes no se eliminaron. Se trasladaron a un servidor de archivo, vault.centos.org. Esto es lo que hace posible la solución temporal que se describe a continuación.

Solución recomendada: migrar a AlmaLinux o Rocky Linux

Dado que CentOS 8 ya no recibe ninguna actualización, incluidas las de seguridad, mantenerlo en producción supone un riesgo. La solución correcta es migrar a una distribución que sea compatible a nivel binario con el sistema que ya está ejecutando.

AlmaLinux y Rocky Linux son reconstrucciones gratuitas de Red Hat Enterprise Linux, mantenidas por la comunidad. Están diseñadas como sustitutos directos de CentOS, de modo que el software y la configuración existentes siguen funcionando sin cambios en la mayoría de los casos. Ambos proyectos ofrecen un script de migración in situ que convierte CentOS 8 sin necesidad de reinstalar el servidor.

Warning

Realice siempre una copia de seguridad completa o una instantánea antes de migrar. Una conversión in situ modifica paquetes esenciales del sistema, y conviene disponer de una forma de volver atrás si algo sale mal.

Ambos scripts de migración necesitan un gestor de paquetes funcional para descargar los nuevos paquetes. En un sistema CentOS 8 que ha llegado al final de su vida útil, los repositorios ya no están disponibles, así que aplique primero la solución temporal de la siguiente sección y luego ejecute la migración.

Para migrar a AlmaLinux 8:

curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh bash almalinux-deploy.sh

Para migrar a Rocky Linux 8:

curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh bash migrate2rocky.sh -r

Cuando el script finalice, reinicie el servidor y confirme el nuevo sistema con:

cat /etc/os-release dnf repolist


Tip

Si el servidor no se puede migrar in situ, o prefiere empezar de cero, despliegue un nuevo VPS con AlmaLinux o Rocky Linux ya instalado y traslade allí sus datos. INTROSERV ofrece VPS Linux con estas distribuciones disponibles ya en el momento del pedido.

Solución temporal: apuntar los repositorios al archivo

Use esto solo cuando necesite que el sistema vuelva a funcionar durante un tiempo breve, por ejemplo, para hacer una última copia de seguridad antes de migrar, o para mantener en marcha una máquina no crítica hasta poder completar la migración. Esto no vuelve a hacer que CentOS 8 sea compatible ni restablece las actualizaciones.

Info

Antes de ejecutar los comandos siguientes, compruebe la versión exacta de su instalación con cat /etc/centos-release. Este artículo usa 8.5.2111 como ejemplo. Sustitúyalo por la versión indicada en su propio sistema. Si especifica la versión archivada incorrecta, DNF puede devolver errores 404, ya que ese directorio no existe para su instalación.

Los comandos siguientes desactivan la lista de mirrors, que ya no funciona, y hacen que los archivos de repositorio apunten en su lugar al servidor de archivo vault.centos.org:

cd /etc/yum.repos.d/ sed -i 's/^mirrorlist/#mirrorlist/g' CentOS-* sed -i 's|^#baseurl=.*mirror.centos.org|baseurl=https://vault.centos.org|g' CentOS-* sed -i 's|/$contentdir/$releasever/|/8.5.2111/|g' CentOS-*

Warning

A diferencia de los repositorios activos, el archivo está organizado en directorios de versión fijos, por ejemplo 8.5.2111. Como resultado, la ruta predeterminada $releasever ya no apunta a contenido válido y debe sustituirse por la versión archivada exacta. Esto se aplica a los tres archivos de repositorio predeterminados, AppStream, BaseOS y Extras, no solo a AppStream.

Después de ejecutar los comandos anteriores, verifique cada archivo de repositorio individualmente en lugar de confiar ciegamente en la edición masiva, ya que un sed aplicado en bloque a tres archivos es un lugar fácil para que se cuele inadvertidamente un carácter erróneo o un separador incorrecto.

Compruebe el archivo de AppStream:

cat CentOS-Linux-AppStream.repo

La línea baseurl debe leerse exactamente así, con el directorio de versión coincidiendo con la suya:

baseurl=https://vault.centos.org/8.5.2111/AppStream/x86_64/os/

Compruebe el archivo de BaseOS de la misma manera:

cat CentOS-Linux-BaseOS.repo

Y el archivo de Extras:

cat CentOS-Linux-Extras.repo

Una vez confirmados los tres archivos, limpie la caché y vuelva a generarla:

dnf clean all dnf makecache dnf repolist

Si un repositorio se corrigió correctamente, ahora descarga sus metadatos sin errores. Si algún archivo todavía tiene un error tipográfico, dnf indica el repositorio concreto que falló, lo que facilita volver atrás y comprobar solo ese archivo.

Warning

El archivo contiene los últimos paquetes publicados antes del fin de vida útil. No recibirá versiones más nuevas ni parches de seguridad. Considere esto como una forma de mantener el sistema accesible hasta que migre, no como un estado permanente.

Para confirmar que los paquetes se instalan correctamente y no solo que se cargan los metadatos, pruebe con cualquier paquete pequeño:

dnf install -y wget


Una vez que esto se realice correctamente, ejecute la actualización real:

dnf update -y

Conclusión

El error de metadatos de AppStream en CentOS 8 es una señal de que la distribución ha llegado al final de su vida útil. La única solución a largo plazo es migrar a una distribución compatible y binariamente equivalente, como AlmaLinux o Rocky Linux, idealmente después de realizar una copia de seguridad completa. La solución temporal con vault.centos.org sigue siendo útil, pero solo como un puente breve que mantiene el servidor en funcionamiento el tiempo suficiente para abandonar CentOS 8 de forma segura.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA