如何修复 CentOS 上的“无法为 repo 找到有效的 baseurl”错误?

dir*_*php 140 centos

我完成了 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
Run Code Online (Sandbox Code Playgroud)

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

小智 171

首先,您需要连接,AFAIK CentOS 6 最小将您的网络设备设置为ONBOOT=No,只需dhclient对您的网络接口执行具有管理员权限的操作,您就应该启动并运行:

$ sudo dhclient

  • 对于 CentOS-7 (1611) 版本,`ONBOOT=No` 位于类似 `/etc/sysconfig/network-scripts/ifcfg-enp0s3` 的文件中。我将该文件编辑为“ONBOOT=yes”并重新启动可以修复它。 (6认同)
  • 在`/etc/sysconfig/network-scripts/ifcfg-enp0s3` 中更改为`ONBOOT=yes` 对我有用,谢谢@JohnnyWong (2认同)

小智 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
Run Code Online (Sandbox Code Playgroud)

所以,我通过以下步骤修复了它:

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

vim /etc/sysconfig/network-scripts/ifcfg-eth0
Run Code Online (Sandbox Code Playgroud)

NM_CONTROLLED更新为no

ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DNS1=8.8.8.8
DNS2=8.8.4.4
Run Code Online (Sandbox Code Playgroud)

重新启动网络接口

ifdown eth0
ifup eth0
Run Code Online (Sandbox Code Playgroud)

  • CentOs 7 上不存在 `ifcfg-eth0` (2认同)

小智 15

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

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

proxy=http://xxx.xxx.xx.xx:8080
Run Code Online (Sandbox Code Playgroud)

即用实际代理代替代理地址。如果不是 8080,还要更改端口号。

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

proxy_username=username
proxy_password=password
Run Code Online (Sandbox Code Playgroud)


Mas*_*len 13

我编辑了文件/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
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这对我有用。有谁知道为什么需要这样做,或者为什么在需要时将其注释掉? (2认同)

小智 9

如果按名称(例如ping www.google.com)ping 知名主机返回ping: unknown host但 ping ip(例如ping 8.8.8.8)工作正常,那么您有 DNS 解析问题 - 尝试将这些条目添加到/etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)


小智 5

我在 CentOS 6 上发生过这种情况,因为它已经生命周期结束了,因此现在没有镜像可以工作。尽管您可以使用 Vault 存储库,其中所有内容都已移动。

对于CentOS 6,执行以下操作:

curl https://www.getpagespeed.com/files/centos6-eol.repo --output /etc/yum.repos.d/CentOS-Base.repo
Run Code Online (Sandbox Code Playgroud)

或者看看这里
这应该可以解决问题。