Actualizar repositorios yum de centos 7 tras el fin del ciclo de vida (Centos-Base.repo y epel.repo).

Como todos sabeis el fin del ciclo de vida (EOL) de centos 7 llego el 30 de junio de 2024.

La recomendación es migrar el sistema operativo a una versión nueva, pero por diversos motivos puede no interesarnos.

El problema es que al seguir con centos 7 los repositorios han dejado de funcionar y al intentar instalar alguna libreria con yum nos aparecen los siguientes errores:

http://ftp.cica.es/CentOS/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.

To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

http://ftp.dei.uc.pt/pub/linux/CentOS/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.

http://mirror.uv.es/mirror/CentOS/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

Para no tener esos errores y poder seguir instalando librerías con yum solo tenemos que cambiar los repositorios.

Primero borramos todos los repositorios del sistema o los que nos estén dando errores:

rm /etc/yum.repos.d/*

Para a continuación añadir los siguientes ficheros:

Repositorio centos base: /etc/yum.repos.d/CentOS-Base.repo

# base packages for reinstall
[base]
name=CentOS-$releasever - Base
baseurl=https://archive.kernel.org/centos-vault/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://archive.kernel.org/centos-vault/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://archive.kernel.org/centos-vault/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://archive.kernel.org/centos-vault/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Repositorio: Extra Packages for Enterprise Linux (EPEL): /etc/yum.repos.d/epel.repo

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place its address here.
#baseurl=http://download.example/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place its address here.
#baseurl=http://download.example/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place it's address here.
#baseurl=http://download.example/pub/epel/7/source/tree/
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

Mostramos el listado de repositorios para confirmar:

[root@localhost ]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirrors.glesys.net
repo id                                                                                            repo name                                                                                                                           status
base/x86_64                                                                                        CentOS-7 - Base                                                                                                                     10,072
epel/x86_64                                                                                        Extra Packages for Enterprise Linux 7 - x86_64                                                                                      13,791
extras/x86_64                                                                                      CentOS-7 - Extras                                                                                                                      526
updates/x86_64                                                                                     CentOS-7 - Updates                                                                                                                   6,173
repolist: 30,562

Y actualizamos para comprobar que esta todo al dia:

[root@localhost]# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirrors.glesys.net
No packages marked for update

Solucionar error: “Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist” en centos 8.

Seguimos con los errores recurrentes, puede que nos haya pasado que al instalar algún paquete con yum en centos 8 nos haya salido el siguiente error: “Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”

Este error es debido a que centos ha cambiado las urls de descarga de los paquetes de los repositorios.

Pues con estos dos pequeños comandos te explico como solucionarlo.

Con el primer comando modificaremos la linea que contiene la variable mirrorlist de todos los ficheros de la carpeta /etc/yum.repos.d que empiecen por CentOS, y la dejaremos comentada #mirrorlist.

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

Y con el segundo comando descomentaremos la variable comentada #baseurl y añadiremos la nueva url de los repositorios de centos, baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/

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

Como paso final actualizamos con “yum clean all” los cambios y ya podremos instalar paquetes por repositorio con yum.

yum clean all

Corregir error yum en centos 6: YumRepo Error: All mirror URLs are not using ftp, http[s] or file

El otro dia me propuse a instalar software con yum en mi viejo centos 6 y me di cuenta que no era posible, ya que me salia este error: YumRepo Error: All mirror URLs are not using ftp, http[s] or file

Investigando di con la noticia de que el ciclo de vida de centos 6 termino el 30 de noviembre de 2020, total que me vi con la necesidad de actualizar los repositorios de yum, para poder seguir instalando software.

Para corregir el erorr basta con seguir estos pasos:

Editamos el fichero /etc/yum.repos.d/CentOS-Base.repo y sustituimos los bloques:

vi /etc/yum.repos.d/CentOS-Base.repo

[base]
[updates]
[extras]

Por los bloques:

vi /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=https://vault.centos.org/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# released updates
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=https://vault.centos.org/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Realizamos un yum clean all y ya tendemos disponible el yum para instalar todo lo que necesitemos.

Como solucionar el error al usar yum: “There was a problem importing one of the Python modules required to run yum.”

Estaba yo intentendo instalar com yum mi amado vim y me salto ese terror: “There was a problem importing one of the Python modules required to run yum.”

[root@pruebas~]# yum install vim
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.6

Total que me puse a investigar y se debia a que habia actualiza la version de python y no reconoce el modulo yum.

La solucion es bastante sencilla, buscamos con un whereis python las diferentes versiones de python instaladas.

[root@pruebas~]# whereis python
python: /usr/bin/python2.6 /usr/bin/python /usr/lib/python2.6  /usr/local/bin/python /usr/include/python2.6 /usr/share/man/man1/python.1.gz

Ahora sabiendo donde se encuentra la ruta del binario del python que necesitamos (en el ejemplo 2.6), bastara con indicarselo en el binario /usr/bin/yum .

vi /usr/bin/yum
#!/usr/bin/python2.6