échec de la mise à jour yum: Erreur: impossible d'extraire les métadonnées du référentiel (repomd.xml) pour le référentiel…


34

J'utilise CentOS 6.3. Lorsque j'essaie de mettre à jour mon système avec yum, j'ai le message suivant:

yum update

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * centosplus: miroir.univ-paris13.fr
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum clean all

Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up list of fastest mirrors

yum check

Loaded plugins: fastestmirror
check all

yum erase apf

Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: apf
Determining fastest mirrors
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
CactiEZ                                                | 2.9 kB     00:00
CactiEZ/primary_db                                     |  13 kB     00:00
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum upgrade

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

Mon yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

1
Depuis hier, vous avez posé tant de questions sur les problèmes de connectivité Internet et de chemin d'accès de yum. Avez-vous déjà envisagé de réinstaller votre système? Il semble joli f $$$ ed up
Kiwy

Vous devez d'abord réparer la connectivité Internet. Réinstaller peut être une option. Ou essayez de démarrer un système de CD live.
Peter

J'ai résolu le problème en supprimant le dossier "yum.repos.d" et en recréant un fichier example.repo. Ajoutez les détails du repo à partir d'ici: linuxquestions.org/questions/linux-newbie-8/…
Yang

Réponses:


33

Vos ca-bundles.crt sont trop vieux. Un moyen de contourner la mise à niveau vers une version plus récente de CentOS serait de changer le fichier epel.repo de l'utilisation de https à http

sudo sed -i 's/https/http/g' /etc/yum.repos.d/epel.repo

2
+1 point sur. Mais vous ne devriez pas avoir besoin de mettre à niveau CentOS pour récupérer le dernier bundle de cert (à cause du support à long terme de CentOS). yum update ca-certificatesdevrait faire l'affaire (après avoir désactivé https pour epel ou saisi directement le rpm et mis à jour à l'aide de rpm).
Kev

@kev Eh bien, en théorie, votre commentaire devrait fonctionner, mais malheureusement pour moi, lorsque je le demande, yum to update ca-certificatesje reçois le message "Aucun paquet marqué pour mise à jour" . En fait, lorsque je le fais, yum list | grep ca-certificatesje reçois ce ca-certificats.noarch 2010.63-3.el6_1.5 comme dernière version de ma boîte CentOS 6.4. Sur ma boîte CentOS 6.5, je reçois ca-certificats.noarch 2014.1.98-65.1.el6. Il semble donc que vous deviez au moins mettre à jour CentOS 6.5 pour obtenir les dernières versions de CA-Ceritifcates de CentOS, ou manuellement obtenir le rpm et l'installer. .
RobertDeRose

@Kev Rob l'a cloué. Un grand nombre d'entreprises sont toujours sur de très vieilles distributions. Je travaille actuellement sur CentOS4.5 pour un client et je dois faire beaucoup de choses qui ne devraient normalement pas être faites.
SgtPooki

@RobD On dirait que OP utilise http et quand j'ai rencontré le même problème, j'utilisais aussi http et non https. Je suis donc curieux de savoir comment vous pourriez en déduire que les certificats racine ssl ca sont dépassés, c’est la cause première.
Dwight Spencer

@DwightSpencer désolé, je ne comprends pas votre question, quel est l'OP? J’en ai déduit que c’était le problème de mes certificats racine ssl ca, car je ne pouvais pas mettre à jour mon ancienne boîte CentOS 6.2, mais je le pouvais sur ma boîte 6.6. Le simple fait de passer de https à http a résolu le problème. Je l'ai plus ou moins simplement réduit à cela.
RobertDeRose

16

Essayez ceci (doit être root)

yum clean all
yum check
yum erase apf
yum update ca-certificates
yum upgrade

Regardez l' édition
az93

Yay! Cela a fonctionné :)
facundofarias

1
A fonctionné parfaitement et c'est beaucoup plus propre que certaines autres réponses sur ce fil.
Dwight Spencer

J'ai dû ajouter un yum update --disableplugin fastestmirrorlaissez - passer car l'une de ces étapes (probablement yum clean) supprimait les informations nécessaires pour contacter les miroirs. Je lui ai dit "non" quand il a offert de faire la mise à niveau, puis a fait une plaine yum updateet il a réussi cette fois. Je crois que le premier passage lui a permis de télécharger une nouvelle liste de miroirs à partir du site principal de CentOS, ce qui a permis au second passage de réussir.
Warren Young


3

Le problème pour moi était que les dépôts utilisaient https et que cela ne fonctionnait pas.

cd /etc/yum.repos.d/
grep -RFi "https" *

Cela montre dans quels fichiers de référençage https est utilisé. Ouvrez-les dans un éditeur et faites-le http. Pour moi, cela a résolu le problème.


3

Toutes les réponses précédentes n'ont pas fonctionné pour moi, mais l'exécution des commandes suivantes a fonctionné:

$ sudo yum remove centos-release-SCL
$ sudo yum update # Update to CentOS 6.8
$ sudo yum install centos-release-scl
$ sudo yum update

Ce que j'ai tiré de ce blog .



2

Si vous utilisez la version 6.5, je ne sais pas pourquoi, mais le répertoire 6.5 n’existe pas dans le référentiel yum officiel de centOS. Tous les colis renverront un code d'état 404

Si vous essayez ceci: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm, vous obtiendrez un 404, mais si vous essayez la version 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm cela fonctionne.


1

Si vous exécutez "yum update" ou "yum upgrade" sans autre paramètre, tous les packages de votre système, y compris yum, seront mis à niveau. Il n'est donc pas nécessaire de mettre à jour yum seul, sauf si vous mettez à niveau les versions de Fedora ou CentOS.


En fait, j'ai besoin d'installer FTP. Mais quand j'utilise yum install ftp je vais au même problème.
az93

1

J'ai installé CentOS via Vagrant, et le /etc/yum.repos.d/répertoire était pré-rempli avec des éléments tels que puppet.repo. Lo and behold, puppet.repoet d'autres repos inclus ne pointaient pas vers des ressources valables.

Alors je les ai enlevés et miam fonctionne maintenant.


1

Dans mon cas, ce qui est vraiment exceptionnel, l'emplacement du fichier XML qui contient les informations de repo est modifié.

  • J'ai une connexion Internet ( ping 8.8.8.8fonctionne)
  • Lorsque je cours yum upgrade, après beaucoup d’ 404erreurs, je peux obtenir les noms des paquets que je dois télécharger, mais je ne peux pas les télécharger.

Et, lorsque je navigue dans la première adresse de dépôt 404, à savoir:

http://mirror.airenetworks.es/CentOS/7.4.1708/os/x86_64/repodata/repomd.xml

et je le vois absent. En allant dans son dossier parent, http://mirror.airenetworks.es/CentOS/7.4.1708/readmeje reçois ceci:

Ce répertoire (et la version de CentOS) est obsolète. Pour les utilisateurs normaux, vous devez utiliser / 7 / et pas /7.4.1708/ dans votre chemin. Veuillez consulter cette FAQ concernant le schéma de version CentOS:

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

Si vous savez ce que vous faites et voulez absolument rester au niveau 7.4.1708, allez à http://vault.centos.org/ pour les packages.

N'oubliez pas que la 7.4.1708 ne reçoit plus aucune mise à jour, ni aucun correctif de sécurité.

Donc, je dois revenir à /etc/yum.repo.dpour éditer les fichiers.

J'ai:

[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/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#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/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Je soupçonne que ce $releasevern’est plus utilisé, je peux donc tester en le changeant en 7: (rappelez-vous de vous échapper &avec \)

curl http://mirrorlist.centos.org/?release=7\&arch=x86_64\&repo=os\&infra=arch

nous pouvons obtenir une liste de fichiers:

ftp://ftp.cesca.cat/centos/7.5.1804/os/x86_64/
http://ftp.rediris.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cica.es/CentOS/7.5.1804/os/x86_64/
http://centos.mirror.minorisa.net/7.5.1804/os/x86_64/
http://repo.nixval.com/CentOS/7.5.1804/os/x86_64/
http://centos.uvigo.es/7.5.1804/os/x86_64/
http://ftp.uma.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cixug.es/CentOS/7.5.1804/os/x86_64/
http://mirror.airenetworks.es/CentOS/7.5.1804/os/x86_64/
http://mirror.gadix.com/centos/7.5.1804/os/x86_64/

Donc, nous pouvons définir la variable comme ceci:

  1. Ouvrez le /etc/yum.repo.d/CentOS-Base.repo
  2. Dans la [base]section, définir: releasever=7.
  3. Re-run yum upgradeou yum install xxx.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.