我该如何解决CentOS上的“无法为回购找到有效的baseurl”错误?


130

我完成了CentOS 6的安装,但是当我尝试运行时,yum update我得到了:

[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

为什么会这样呢?我该如何解决?


3
您已连接到网络吗?您可以ping mirrorlist.centos.org吗?
Nikhil Mulley

3
如果您跑步会curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os'怎样?
rvs 2012年

Answers:


165

首先,您需要建立连接,将AFAIK CentOS 6的网络设备最小设置为ONBOOT=No,只需dhclient对网络界面执行admin特权,就可以启动并运行:

$ sudo dhclient


1
我曾经根据此答案在使用ssh的远程服务器上设置dhcp客户端,但现在丢失了连接,因为服务器IP现在已动态更改,并且在应用更改之前我没有考虑这种情况。如果没有足够的描述,这个答案是错误的,并且会引起误解。
Mojtaba Rezaeian

4
对于CentOS-7(1611)版本,该ONBOOT=No文件位于像这样的文件中/etc/sysconfig/network-scripts/ifcfg-enp0s3。我将该文件编辑为,ONBOOT=yes然后重新启动即可修复该文件。
Johnny Wong

2
更改为ONBOOT=yes/etc/sysconfig/network-scripts/ifcfg-enp0s3为我工作,谢谢@JohnnyWong
Evi的宋

24

我一直在Centos6.4 x86_64 上遇到同样的问题。我收到以下错误:

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

因此,我通过以下步骤对其进行了修复:

编辑网络界面。就我而言,我eth0在CentOS 6.X中使用过。在CentOS 7中,您可以使用“ ensxxx”界面。

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

NM_CONTROLLED更新为

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

重新启动网络接口

ifdown eth0
ifup eth0

1
ifcfg-eth0在CentO 7上不存在
shailenTJ 2015年

@shailenTJ只需触摸它就可以了。
Eddie

1
@shailenTJ他们更改了命名系统,它将是enpXsX,在我的系统上是enp0s3,但是可能与您的稍有不同。
MarcusJ 2015年

如果您执行“最小安装”,则其为“ ifcfg-enpls0f0”。但是,如果使用GUI安装,它将用其他内容覆盖该文件。然后,您使用桌面主屏幕右上角的网络设置工具。
克里斯·杜特罗

4.2.2.2可能不是您想要的DNS条目!
Dolph

14

我遇到了同样的问题,并在编辑/etc/yum.conf文件后得到解决。如果您在代理服务器上运行,并且绕过提供给服务器的IP,但仍在浏览器中打开时(IE,我们需要在代理服务器上打上复选标记,而无需提供用户名和密码。)

在文件/etc/yum.conf文件的主要部分中添加以下行。

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

即用实际的代理替换代理地址。如果不是8080,请同时更改端口号。

如果代理需要身份验证,请将其也添加到文件中

proxy_username=username
proxy_password=password

9

我编辑了文件/etc/yum.repos.d/CentOS-Base.repo并且未添加注释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
谢谢!这对我有用。有谁知道为什么需要它,或者为什么需要它被注释掉了?
Rich

9

如果按名称(例如ping www.google.com)对知名主机ping: unknown host执行ping操作,但对ip(例如ping 8.8.8.8)进行ping操作正常,则说明存在DNS解析问题-尝试将这些条目添加到/etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

2

昨天我遇到了同样的问题,花了数小时试图解决它。解决方案最终变得很简单。

删除的内容,/etc/yum.repos.d/remi.repo然后执行

# yum update

完成!该文件的内容将再次开始下载并进行配置。


remi.repo文件在哪里?

/etc/yum.repos.d/
史蒂文·克里斯卡

我可能想念一些东西,但是您在哪里看到他安装了Remi的存储库?他清楚地提到“我已完成CentOS6的安装”,我有点怀疑Remi的存储库已配置。我可能是错的...
2013年

问题是下一个畸形文件/etc/yum.repos.d- remi.repo正好是在这种情况下,文件名
柯蒂斯马顿

1

我偶然发现的另一种可能性是导致此问题:

我使用一个Puppet模块为stentma / epel模块创建了CentOS的EPEL仓库。

在模块中,它使用::os_maj_version我的事实列表中不存在的变量构造了回购URL 。我必须用:: operatingsystemmajrelease替换它。

因此,其中的网址/etc/yum.repos.d/epel.repo格式错误。



0

先前的所有答案都是正确的,但不幸的是对我没有用。下面的命令为我工作:

警告这将删除您所有的Centos仓库!!! 使用此方法后果自负

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

这将从系统中删除存储库
Saurabh Chandra Patel

删除所有存储库文件后,您可能应该考虑包括重新创建删除的存储库文件的过程。
Kusalananda
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.