(modifié le 30 août 2017 à 1:45)

J'utilise une VM pour héberger Centreon Entreprise Server à la maison, histoire de bidouiller un peu. Je démarre donc la VM rarement, pas plus que j'y fais les mises à jour.

Quand j'ai voulu mettre à jour avec yum update j'ai eu l'erreur suivante :

[errno 14] pycurl error 22 - "the requested url returned error: 404 not found"

En allant sur l'URL du dépôt affiché j'y ai trouvé ce fichier texte :

This directory (and version of CentOS) is deprecated. For normal users,
you should use /6/ and not /6.8/ in your path. Please see this FAQ
concerning the CentOS release scheme:

https://wiki.centos.org/FAQ/General

If you know what you are doing, and absolutely want to remain at the 6.8
level, go to http://vault.centos.org/ for packages.

Please keep in mind that 6.0, 6.1, 6.2, 6.3, 6.4 , 6.5, 6.6, 6.7 and 6.8 no longer gets any updates, nor
any security fix's.

Voyons comment y remédier en 1 minute.

La cause

Yum garde en cache la liste des paquets et dépôts associés les hébergeant. Sauf que quand une nouvelle version de CentOS sort ce chemin change pour pointer vers la dernière release de la branche.

C'est tout bête mais il faut le savoir.

La solution

Il suffit de purger les metadata

yum clean metadata

Ou le cache complet de yum :

yum clean all

Puis de relancer la mise à jour :

yum update

Et voilà, tout fonctionne à nouveau.

Si toute la base est en vrac :

rm -f /var/lib/rpm/__db*
db_verify /var/lib/rpm/Packages
rpm --rebuilddb
yum clean all

note : si ce n'est pas le cas vérifiez que votre version de CentOS est à minima encore couverte par les mises à jour de sécurité sur cette page dédiée.

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter