Yum hängt und antwortet nicht

37

Ich laufe yum check-updateund es friert nach 2 Zeilen Ausgabe ein:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

Ich bin mir nicht sicher, was passiert. Die letzten Dinge , die ich mit yum erinnere mich an waren yum updateund Blick auf eine der CentOS yum repos , aber ich habe keine Änderungen vornehmen.

Irgendwelche Vorschläge, um yum zu beheben?

barrrista
quelle

Antworten:

22

Möglicherweise liegt ein DNS-Problem vor. Stellen Sie sicher, dass Sie DNS-Einträge lokal auflösen können:

nslookup google.com

Wenn Sie von diesem Befehl eine IP-Adresse zurückerhalten, sollte DNS in Ordnung sein. Versuchen Sie dann, den Schnellst-Spiegel-Cache zu entfernen und den Befehl yum erneut auszuführen:

rm -f /var/cache/yum/timedhosts.txt

Garrett
quelle
1
Ich habe von diesem Befehl eine IP zurückbekommen. timedhosts.txt war eine leere Textdatei, aber ich habe trotzdem versucht, sie zu entfernen. Ich überarbeite dann mein yum Kommando. Leider kein erfolg Es hängt immer noch an derselben Stelle: "Ermittlung der schnellsten Spiegel". Wenn ich ausführlich starte, erhalte ich Loading "schnellste Spiegelung" -Plugin Konfigurationszeit: 0.094 Yum Version: 3.2.22 Einrichten von Paketsäcken Laden der Spiegelungsgeschwindigkeiten aus der zwischengespeicherten Hostdatei
barrrista
10
Um ein Problem mit dem schnellsten Mirror-Plugin auszuschließen, versuchen Sie, yum ohne Plugins auszuführen:yum --noplugins check-update
Garrett,
67

Das alles hat bei mir nicht geklappt.

Mit CentOS und yum. yum hängt zumindest ohne Fehlermeldung, so scheint es. Drücken von Ctrl+ Cfunktioniert nicht (erneutes Drücken immer wieder).

Einige Dinge müssen überprüft werden: - Sind die Repositorys in Ordnung? - Ist die Vernetzung in Ordnung? - Sind die YUM- und RPM-Datenbanken in Ordnung?

Beginnen Sie also zuerst mit den einfachen Dingen - bereinigen Sie die Datenbanken:

rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v   
yum clean all

Wenn dies nicht funktioniert hat, können Sie eine Debug-Stufe, eine Fehlerstufe und eine Zeitüberschreitung für yum in festlegen /etc/yum.conf:

debuglevel=1
errorlevel=1
timeout=1

Das Timeout beträgt standardmäßig 30 Sekunden. Wenn also ein Repository nicht antwortet, dauert es 30 Sekunden, bis der Fehler angezeigt wird. Versuchen Sie auch die Plugins mit yum , ohne (wie schnellster Spiegel und Prioritäten) mit der Option --noplugins. Wenn Sie nun wieder mit yum beginnen, erhalten Sie schneller mehr Informationen. Testen Sie mit:

yum --verbose --noplugins info

Sie könnten so etwas bekommen:

 Config time: 0.105
 Yum Version: 3.2.22
 Setting up Package Sacks
 Loading mirror speeds from cached hostfile
 * base: mirror.nl.leaseweb.net
 * extras: mirror.nl.leaseweb.net
 * ius: mirrors.ircam.fr
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol') 
 Trying other mirror.

Dies bedeutet, dass keine Informationen vom Server empfangen werden können. Probieren Sie die URL aus, die von yum in Ihrem Webbrowser angezeigt wird (oben angegeben mit dem Link zum Server-Repository). Kopiere und füge es aus deiner Yum-Antwort ein, nicht aus diesem Beitrag! Wenn Sie eine Liste erhalten, wissen Sie, dass das Repository online ist.

Wenn in Ihrem Browser ein Fehler auftritt, entfernen Sie das Repository aus /etc/yum.repos.d. Versuchen Sie, die Liste auf Ihrem Server mit wget abzurufen und die URL einzufügen:

wget link-to-server-repository/repomd.xml

Wenn dies zu einer Zeitüberschreitung führt, liegt ein Problem mit Ihren Firewall- oder Proxy-Einstellungen vor. Versuchen Sie, Ihre Firewall zu deaktivieren.

Wenn Sie csf(ConfigServer Security and Firewall) lfdausführen und Sie können csf deaktivieren mit:

csf -x

Versuchen Sie es noch einmal und wenn es funktioniert, müssen Sie Ihre neu konfigurieren csf. Aktivieren Sie csferneut mit:

csf -e

Und überprüfen Sie auch Ihre Proxy-Einstellungen. Sie können auch versuchen, in den .repo-Dateien unter https in http zu ändern /etc/yum.repos.d/.

user179734
quelle
1
Diese Antwort ist so viel mehr wert als 4 Gegenstimmen = (
mveroone
Viele gute Informationen hier. Das Erhöhen des Debugging-Levels und das Ausführen haben yum --verbose --noplugins infomich zu dem Ergebnis "Fehler: Repository-Metadaten (repomd.xml) für Repository: base können nicht abgerufen werden. Überprüfen Sie den Pfad und versuchen Sie es erneut" geführt, das ich jetzt untersuche. Mein DNS funktioniert, also sollte das nicht das Problem sein.
Harperville
3
Ein wichtiger Punkt, der in dieser Antwort zu fehlen scheint, ist, dass yum checkdie Fertigstellung Stunden dauern kann! Weitere Informationen: centos.org/forums/viewtopic.php?f=14&t=46676
gmas80
Der erste Code hat bei mir funktioniert .. danke.
Maher Abuthraa
Die Datenbankbereinigung hat auch bei mir
funktioniert
2

Ich hatte ein ähnliches Problem. Es stellte sich heraus, dass es sich um eine alte DNS-Adresse handelte resolv.conf. Ich habe die IP auf die richtige geändert und das Problem behoben.

Joe Sulkowski
quelle
Unter Vagrant kann das auch passieren.
bbaassssiiee
0

Hatte ein ähnliches Problem und der Grund war das Vorhandensein einer yum-Sperrdatei, /var/run/yum.pidbei der ein vorheriger yum-Lauf sie aufgrund eines schwerwiegenden Fehlers verlassen hat.

Ich habe es mit entfernt sudo rm /var/run/yum.pidund das Problem wurde gelöst.

bekce
quelle
0

Es tut uns leid, aber ich habe nicht genug Reputation, um nach diesem Kommentar zu fragen:

Als ich diese Lösung versuchte, bemerkte ich, dass mit --noplugins alles gut laufen würde. Nach einer binären Suche in den Plugins stellte ich fest, dass der Abonnement-Manager die Ursache aller Probleme war. Ich habe es deaktiviert und voilà! - Mariuslp

@mariuslp, ich kann yum auch nur ausführen, indem ich --noplugins hinzufüge. Können Sie näher erläutern, wie Sie eine "binäre Suche unter den Plugins" durchgeführt haben und was Sie bei dieser Suche dazu geführt hat, festzustellen, was den Fehler verursacht hat? Vielen Dank!

cniggeler
quelle