Wie kann ich den Fehler beheben, dass unter CentOS keine gültige Basis-URL für Repos gefunden wird?


130

Ich habe die Installation von CentOS 6 abgeschlossen, aber als ich versuchte zu laufen, yum updatebekam ich:

[root@centos6test ~]# yum update
Loaded plugins: fastestmirror, refresh-packagekit
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=i386&repo=os
error was 14: PYCURL ERROR 6 - "" Error: Cannot find a valid baseurl for repo: base

Warum passiert das? Wie kann ich es reparieren?


3
Sind Sie mit dem Netzwerk verbunden? Können Sie mirrorlist.centos.org anpingen?
Nikhil Mulley

3
Was passiert, wenn du rennst curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os'?
rvs

Antworten:


165

Als Erstes müssen Sie eine Verbindung herstellen. AFAIK CentOS 6 minimal stellt Ihr Netzwerkgerät auf ONBOOT=Noein. dhclientFühren Sie einfach eine Administratorberechtigung für Ihre Netzwerkschnittstelle aus, und Sie sollten einsatzbereit sein:

$ sudo dhclient


1
Ich habe den DHCP-Client auf meinem Remote-Server mithilfe von ssh gemäß dieser Antwort eingerichtet und jetzt die Verbindung verloren, da die Server-IP-Adresse jetzt dynamisch geändert wird und ich nicht an diesen Fall gedacht habe, bevor Änderungen vorgenommen wurden. Diese Antwort ist ohne ausreichende Beschreibung trügerisch und führt zu Missverständnissen.
Mojtaba Rezaeian

4
Bei der CentOS-7-Version (1611) ONBOOT=Nobefindet sich das in einer Datei wie /etc/sysconfig/network-scripts/ifcfg-enp0s3. Ich habe diese Datei bearbeitet ONBOOT=yesund kann sie durch einen Neustart beheben.
Johnny Wong

2
Das Umstellen ONBOOT=yesauf /etc/sysconfig/network-scripts/ifcfg-enp0s3funktioniert für mich, danke @JohnnyWong
Evi Song

24

Ich hatte mit demselben Problem bei Centos6.4 x86_64 zu kämpfen . Ich habe folgende Fehlermeldung erhalten:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot find a valid baseurl for repo: base

Also habe ich es folgendermaßen behoben:

Netzwerkschnittstelle bearbeiten. Für meinen Fall habe ich eth0in CentOS 6.X verwendet. In CentOS 7 können Sie die "ensxxx" -Schnittstelle verwenden.

vim /etc/sysconfig/network-scripts/ifcfg-eth0

update NM_CONTROLLED auf no

ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DNS1=8.8.8.8
DNS2=4.2.2.2

Starten Sie die Netzwerkschnittstelle neu

ifdown eth0
ifup eth0

1
ifcfg-eth0existiert nicht auf CentOs 7
shailenTJ 31.01.15

@shailenTJ Berühren Sie es einfach ~ funktioniert gut.
Eddie B

1
@shailenTJ Sie haben das Benennungssystem geändert, es wird enpXsX sein, auf meinem System ist es enp0s3, aber es wird wahrscheinlich ein bisschen anders sein.
MarcusJ

Wenn Sie "minimal install" machen, ist es "ifcfg-enpls0f0". Wenn Sie jedoch mit einer grafischen Benutzeroberfläche installieren, wird diese Datei durch etwas anderes überschrieben. Anschließend verwenden Sie das Netzwerkeinstellungen-Tool in der oberen rechten Ecke des Desktop-Hauptbildschirms.
Chris Dutrow

4.2.2.2wahrscheinlich ist nicht der DNS-Eintrag, den Sie wollen!
Dolph

14

Ich hatte das gleiche Problem und es wurde behoben, nachdem ich die /etc/yum.confDatei bearbeitet hatte . Wenn Sie auf einem Proxyserver ausgeführt werden und die dem Server zugewiesene IP-Adresse umgangen wird, dies jedoch beim Öffnen im Browser weiterhin der Fall ist (IE - Wir müssen das Kontrollkästchen für den Proxyserver aktivieren, aber keinen Benutzernamen und kein Kennwort angeben.)

Fügen Sie diese folgende Zeile in den Hauptabschnitt der Datei /etc/yum.conf ein.

proxy=http://xxx.xxx.xx.xx:8080

dh Ersetzen der Proxy-Adresse durch den tatsächlichen Proxy. Ändern Sie auch die Portnummer, wenn es nicht 8080 ist.

Wenn der Proxy eine Authentifizierung erfordert, fügen Sie diese auch der Datei hinzu

proxy_username=username
proxy_password=password

9

Ich habe die Datei bearbeitet /etc/yum.repos.d/CentOS-Base.repound nicht kommentiert baseurl:

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

1
Vielen Dank! Das hat bei mir funktioniert. Weiß jemand, warum dies benötigt wird oder warum es auskommentiert wurde, wenn es benötigt wird?
Rich

9

Wenn das Pingen eines bekannten Hosts nach seinem Namen (z. B. ping www.google.com) zurückgegeben wird ping: unknown host, das Pingen einer IP-Adresse (z. B. ) jedoch einwandfrei ping 8.8.8.8funktioniert, liegt ein Problem mit der DNS-Auflösung vor. Versuchen Sie, die folgenden Einträge hinzuzufügen /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

2

Ich hatte gestern das gleiche Problem und habe stundenlang versucht, es zu lösen. Die Lösung erwies sich als einfach.

Löschen Sie den Inhalt von /etc/yum.repos.d/remi.repound führen Sie dann aus

# yum update

Es ist fertig! Der Inhalt der Datei startet den Download erneut und wird konfiguriert.


Wo befindet sich diese remi.repoDatei?

/etc/yum.repos.d/
Steven Kryskalla

Ich habe vielleicht etwas verpasst, aber wo siehst du, dass er das Repo von Remi installiert hat? Er erwähnte deutlich "Ich habe die Installation von CentOS6 beendet", ich bezweifle, dass Remis Repo konfiguriert ist. Ich könnte mich irren ...
Spredzy

Das Problem ist eine fehlerhafte Datei unter /etc/yum.repos.d- remi.repogerade passiert den Dateinamen in diesem Fall sein
Curtis Mattoon

1

Hier ist eine weitere Möglichkeit, über die ich gestolpert bin und die dieses Problem verursacht hat:

Ich habe ein Puppet-Modul verwendet, um das EPEL-Repo für CentOS, das Stahnma / Epel-Modul, zu erstellen.

Innerhalb des Moduls wurde die Repo-URL mit der Variablen erstellt, ::os_maj_versiondie in meiner Liste der Fakten nicht vorhanden war. Ich musste das durch :: operatingsystemmajrelease ersetzen.

Die URL in /etc/yum.repos.d/epel.repowar also fehlerhaft.


0

Es passierte mir in einer Centos 7-Umgebung und ich konnte es mit dem folgenden Befehl lösen:

yum clean all

Ich hatte seit ein paar Monaten keinen yum-Befehl mehr ausgeführt. Die zwischengespeicherten Metadaten scheinen veraltet zu sein.


0

Alle bisherigen Antworten sind korrekt, haben aber leider bei mir nicht funktioniert. Der folgende Befehl hat bei mir funktioniert:

Achtung, dies löscht alle Centos-Repos !!! Verwenden Sie dies auf eigenes Risiko

mkdir ~/backup
cp -r /etc/yum.repos.d/Cen* ~/backup
rm /etc/yum.repos.d/Cen*

Dies löscht das Repo vom System
Saurabh Chandra Patel

Sie sollten wahrscheinlich überlegen, wie Sie die gelöschten Repository-Dateien neu erstellen, nachdem Sie alle gelöscht haben.
Kusalananda
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.