Solución para el error «Failed to download metadata for repo appstream» de CentOS 8


Si tienes instalado CentOS 8 igual está empezando a sufrir un nuevo error con los repositorios. La causa es el cambio de las direcciones de los mismos. «CentOS Linux 8 – AppStream Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist» lo verás cuando tu CentOS 8 Linux quiere instalar o actualizar paquetes con yum o dnf.

El error se produce al intentar al acceder a los repositorios, empezando por appstream, y nos impide actualizar o instalar nuevos paquetes en Linux CentOS 8.

El cambio de CentOS 8 a CentOS 8 Stream ha completado el cambio de URL para los repositorios de datos y por tanto tenemos que modificar las fuentes de datos para descargar o actualizar paquetes. El proceso por línea de comandos es relativamente sencillo, pero aun así siempre recomendamos realizar una copia del servidor, si lo tienes virtualizado es fácil, haz un snapshot.

Ejecuta primero esta línea para comentar las líneas del repositorio antiguo de CentOS 8. Esto añadirá una # para comentar las líneas de la lista de mirrors.

sudo sed -i -e «s|mirrorlist=|#mirrorlist=|g» /etc/yum.repos.d/CentOS-*

Después tenemos que ejecutar este otro comando:

sudo sed -i -e «s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g» /etc/yum.repos.d/CentOS-*

De forma que reemplazaremos todo lo que empieza por #baseurl por una nueva línea que ya contiene la URL del repositorio nueva:

baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/

Los cambios de es comando se aplicarán a todos los ficheros que empiecen por CentOS- dentro de la carpeta /etc/yum.repos.d/.

CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-ContinuousRelease.repo
CentOS-Linux-Debuginfo.repo
CentOS-Linux-Devel.repo
CentOS-Linux-Extras.repo
CentOS-Linux-FastTrack.repo
CentOS-Linux-HighAvailability.repo
CentOS-Linux-Media.repo
CentOS-Stream-NFV.repo
CentOS-Linux-Plus.repo
CentOS-Linux-PowerTools.repo
CentOS-Stream-RealTime.repo
CentOS-Stream-ResilientStorage.repo
CentOS-Linux-Sources.repo

Como ejemplo el fichero CentOS-Linux-BaseOS.repo quedará de esta forma:

[baseos]
name=CentOS Linux $releasever - BaseOS
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

Ahora tenemos que borrar 100% la cache de repositorios con yum o dnf, por ejemplo:

dnf clean all

Después actualizaremos los repositorios con:

dnf swap centos-linux-repos centos-stream-repos

Ahora ya podemos actualizar o instalar paquetes en nuestro Linux CentOS 8 sin problemas tanto con dnf como con yum.


Deja una respuesta

Tu dirección de correo electrónico no será publicada.