Das Update schlägt fehl: Fehler: Repository-Metadaten (repomd.xml) können nicht für das Repository abgerufen werden.


34

Ich benutze CentOS 6.3. Wenn ich versuche, mein System mit yum zu aktualisieren, erhalte ich folgende Meldung:

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

Meine 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
seit gestern hast du so viele fragen über fehler bei der internetverbindung und bei pfadproblemen gestellt, hast du gerade darüber nachgedacht dein system neu zu installieren? Es scheint ziemlich gut
Kiwy

Sie müssen zuerst die Internetverbindung reparieren. Eine Neuinstallation ist möglicherweise eine Option. Oder versuchen Sie, ein Live-CD-System zu booten.
Peterph

Ich löste das Problem, indem ich den Ordner "yum.repos.d" löschte und eine example.repo-Datei neu erstellte. Fügen
Yang

Antworten:


33

Ihre ca-bundles.crt sind zu alt. Ein Workaround, bis Sie ein Upgrade auf eine neuere Version von CentOS durchführen, besteht darin, die Datei epel.repo von https in http zu ändern

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

2
+1 Stelle auf. Sie sollten CentOS jedoch nicht aktualisieren müssen , um das neueste Zertifizierungspaket zu erhalten (aufgrund der langfristigen Unterstützung von CentOS). yum update ca-certificatessollte den Trick machen (nach Deaktivierung von https für epel oder direktem Abrufen der RPM und Aktualisieren mit RPM).
Kev

@kev Theoretisch sollte Ihr Kommentar funktionieren, aber leider für mich, wenn ich frage, dass yum to update ca-certificatesich "Keine Pakete für Update markiert" bekomme . Tatsächlich yum list | grep ca-certificatesbekomme ich bei der Ausführung von ca-certificates.noarch 2010.63-3.el6_1.5 als neueste Version auf meiner CentOS 6.4-Box. Auf meiner CentOS 6.5-Box erhalte ich ca-certificates.noarch 2014.1.98-65.1.el6. Sie müssen also anscheinend mindestens auf CentOS 6.5 aktualisieren, um die neuesten CA-Zertifizierungen von CentOS zu erhalten, oder die RPM manuell abrufen und installieren .
RobertDeRose

@ Kev Rob hat es genagelt. Viele Unternehmen befinden sich noch in sehr alten Distributionen. Ich arbeite zurzeit für einen Kunden an CentOS4.5 und muss eine Menge Dinge tun, die normalerweise nicht erledigt werden sollten.
SgtPooki

@RobD Es sieht so aus, als ob OP http verwendet, und als ich auf dasselbe Problem stieß, habe ich auch http und nicht https verwendet. Ich bin nur neugierig, wie Sie daraus schließen können, dass SSL-CA-Stammzertifikate, die veraltet sind, die Grundursache sind.
Dwight Spencer

@ DwightSpencer Entschuldigung, ich verstehe Ihre Frage nicht, was ist OP? Ich folgerte, dass meine SSL-CA-Stammzertifikate das Problem waren, da ich auf meiner alten CentOS 6.2-Box keine Aktualisierung durchführen konnte, auf meiner 6.6-Box jedoch. Ein einfacher Wechsel von https zu http löste das Problem. Ich habe es mehr oder weniger darauf beschränkt.
RobertDeRose

16

Versuchen Sie dies (muss root sein)

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


Yay! Es hat funktioniert :)
facundofarias

1
Hat perfekt funktioniert und das ist viel sauberer als einige andere Antworten auf diesen Thread.
Dwight Spencer

Ich musste dort einen yum update --disableplugin fastestmirrorPass hinzufügen, weil einer dieser Schritte (wahrscheinlich yum clean) Informationen entfernte, die für die Kontaktaufnahme mit den Spiegeln erforderlich waren. Ich habe es mit "Nein" beantwortet, als es angeboten hat, das Upgrade durchzuführen. Dann habe ich ein einfaches Upgrade durchgeführt und diesmal war yum updatees erfolgreich. Ich glaube, der erste Durchgang hat dazu geführt, dass eine neue Mirror-Liste von der CentOS-Hauptseite heruntergeladen wurde, wodurch der zweite Durchgang erfolgreich war.
Warren Young


3

Das Problem für mich war, dass die Repos https verwenden und das nicht funktioniert.

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

Dies zeigt, in welchen Repo-Dateien https verwendet wird. Öffnen Sie sie in einem Editor und machen Sie es http. Für mich hat das das Problem behoben.


3

Alle vorherigen Antworten haben bei mir nicht funktioniert, aber das Ausführen der folgenden Befehle hat funktioniert:

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

Was ich von diesem Blog-Post bekommen habe .



2

Wenn Sie 6.5 verwenden, weiß ich nicht warum, aber das 6.5-Verzeichnis im offiziellen yum-Repository für centOS existiert nicht. Alle Pakete geben einen 404-Statuscode zurück

Wenn Sie dies versuchen: http://mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm, erhalten Sie eine 404, aber wenn Sie es versuchen Die Version 6.6: http://mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm funktioniert.


1

Wenn Sie "yum update" oder "yum upgrade" ohne andere Parameter ausführen, werden alle Pakete auf Ihrem System, einschließlich yum, aktualisiert, sodass Sie yum wirklich nur dann selbst aktualisieren müssen, wenn Sie Fedora- oder CentOS-Versionen aktualisieren.


In der Tat muss ich FTP installieren. Aber wenn ich yum install ftp benutze, gehe ich das gleiche Problem.
Az93

1

Ich habe CentOS über Vagrant installiert und es wurde mit dem /etc/yum.repos.d/Verzeichnis geliefert, das mit Dingen wie vorbelegt ist puppet.repo. Siehe da, puppet.repound andere eingeschlossene Repos wiesen nicht auf gültige Ressourcen hin.

Also habe ich sie entfernt und yum arbeitet jetzt.


1

In meinem Fall, der wirklich außergewöhnlich ist, wird der Speicherort der XML-Datei, die die Repo-Informationen enthält, geändert.

  • Ich habe eine Internetverbindung ( ping 8.8.8.8funktioniert)
  • Wenn ich yum upgradenach vielen 404Fehlern starte, kann ich die Namen der Pakete abrufen, die ich herunterladen muss, aber ich kann sie nicht herunterladen.

Und wenn ich in die erste 404-Repo-URL schaue, ist das:

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

und ich sehe es abwesend. Wenn ich in den übergeordneten Ordner gehe, http://mirror.airenetworks.es/CentOS/7.4.1708/readmeerhalte ich Folgendes:

Dieses Verzeichnis (und die Version von CentOS) sind veraltet. Für normale Benutzer sollten Sie / 7 / und nicht /7.4.1708/ in Ihrem Pfad verwenden. Bitte beachten Sie diese FAQ zum CentOS-Release-Schema:

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

Wenn Sie wissen, was Sie tun, und unbedingt auf dem Stand 7.4.1708 bleiben möchten, finden Sie unter http://vault.centos.org/ Pakete.

Bitte beachten Sie, dass 7.4.1708 keine Updates oder Sicherheitskorrekturen mehr erhält.

Also muss ich zurückgehen /etc/yum.repo.d, um die Dateien zu bearbeiten.

Ich habe:

[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

Ich vermute, dass $releaseverdas nicht mehr in Gebrauch ist, also kann ich testen, indem ich es ändere in 7: (Denken Sie daran, &mit zu fliehen \)

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

Wir können eine Liste von Dateien bekommen:

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/

Also können wir die Variable so einstellen:

  1. Öffne das /etc/yum.repo.d/CentOS-Base.repo
  2. Im [base]Abschnitt definieren: releasever=7.
  3. Führen Sie yum upgradeoder erneut aus yum install xxx.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.