CentOS 6.5 上作为 VMware guest 虚拟机的 Yum 更新问题

CentOS 6.5 上作为 VMware guest 虚拟机的 Yum 更新问题

信息:我使用的是 Windows 7 Pro(64 位)和 VMware Workstation 版本 10.0.1 。我第一次使用 CentOS(64bit) 6.5 最小版本。我从工作场所网络运行此程序,该网络可能使用代理服务器。

背景:我一直在关注这个教程(http://1stopit.blogspot.com/2013/11/creating-centos-64-minimal-vm-with.html

按照教程中的建议,我将虚拟机配置为使用桥接网络,而不是 NAT(默认设置)。

起初,当尝试运行时,yum update我收到了 PYCURL ERROR 6,它看起来像这样:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
could not retreive 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

然后我尝试运行ping mirrorlist.centos.org,结果是ping:unknown host mirrorlist.centos.org

然后我尝试了: ifdown eth0then ifup eth0,结果是:Determining IP information for eth0... failed.

以下是我的文件的当前内容/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp

(我不知道是否应该显示我的 HWADDR 和 UUID,所以我匿名)

由于我试图从我的工作场所(可能使用代理服务器)运行它,我想我会尝试这里的建议https://unix.stackexchange.com/a/93428/60724,然后编辑/etc/yum.conf,我添加了proxy=http://xxx.xxx.xx.xx:8080,这是 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
proxy=http://xxx.xxx.xx.xx:8080

#comments
#metadata_expire=90

然后,当我尝试运行时yum update,我开始收到 PYCURL 错误 5,而不是 PYCURL 错误 6,请参阅以下内容:

running yum update results in:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
4&repo=os error was
14: PYCURL ERROR 5 - "Couldn't resolve proxy 'xxx.xxx.xx.xx'"
Error: Cannot find a valid baseurl for repo:base

答案1

这是 Centos/RHEL 6.x 最小安装的一个错误。安装期间不会激活网络,因为出于某种原因,他们希望所有安装都使用网络管理器。将文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中的行 ONBOOT="no" 更改为 ONBOOT="yes" (或任何您的 eth 连接号)。

顺便说一句,不推荐使用 ifconfig,而是使用“ip a”和/或“ip r”。

答案2

首先你需要弄清楚你是否通过代理

卷曲http://www.google.com 网址--代理http://xxx.xxx.xx.xx:8080

如果它正在工作,我敢打赌它是一个经过身份验证的代理。将此脚本保存为 connect.sh,chmod +x connect.sh 以使其可运行。然后运行

#!/bin/bash
echo -n "User:";
read user
echo -n "Password:";
read -s password 

proxy=http://$user:[email protected]:8080

if http_proxy="$proxy" curl -silent http://www.google.com | grep authentication_failed;
then 
        echo NO CONNECT
        unset http_proxy
else 
        echo -n OK
        http_proxy="$proxy" $*
fi

然后运行 ​​./connect.sh 'yum update'

如果它不起作用,则可能是镜像,这是我的 EPEL /etc/yum.repo.d/epel.repo 使用工作镜像完整路径的示例

#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
baseurl=http://mirror.umd.edu/fedora/epel/6/x86_64

答案3

运行 ifconfig -a 并告诉我您已经拥有一个真实的、可用的 IP。我敢打赌,从 NAT 后面移出还会丢失一台 DHCP(通过 dnsmasq)服务器,您可以从中获取可用的 IP,而您却得不到。

最简单的事情是再次回到 NAT 后面并恢复正常(服务网络重新启动或只是重新启动)。

否则,如果您从桥接网络上的某些 DHCP 获取可用的 IP,我们应该检查您的 DNS 和路由。我确信这很简单,因为您无法访问 DNS(或其他任何东西),这就是为什么您无法到达任何地方。因此,如果您的虚拟机网卡上有真实可用的 IP,请执行 cat /etc/resolv.conf 和route -n。

答案4

在设置 CentOS 6.5 时遇到了同样的问题。我的系统使用静态 IP 地址,然后繁荣!!!不工作。唯一的区别是我安装了 XFCE gui(规格不是很好),然后是 X11 字体包...

不知何故,当我检查 ifconfig 时,静态信息在那里,但 /etc/resolv.conf 中的名称服务器信息消失了......?我无法想象 GUI 的安装将如何做到这一点,但这是唯一的区别。

我怎么找到这个...?我可以 ping 通 8.8.8.8 等,但不能 ping 通 google.com 等域名。所以,我尝试了卷曲http://www.google.comresolv.conf 中的默认条目显示不存在名称服务器

一旦我把它们放进去,一切都很好。

相关内容