YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
问题
今天在VMware上安装了一台Linux(CentOS 6.5)虚拟机,在安装apache http web服务器时,出现了以下问题:
二话不说,在网上搜了一大圈,结合网友的各种解决办法,这里,本人总结一下。
解决办法
1.确保虚拟机网络是通的
首先要确保虚拟机网络是通的,可以ping通www.baidu.com。
如果不通,设置网卡DNS域名解析服务器。
DNS1=8.8.8.8 #说明:8.8.8.8是google公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。
DNS2=114.114.114.114 #说明:114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
然后vi /etc/resolv.conf,这里的nameserver与网卡配置中的DNS配置对应即可。
nameserver 8.8.8.8
nameserver 114.114.114.114
再次测试网络已通。
继续yum install httpd -y,问题仍旧存在。
2.配置repo文件
有些网友描述/etc/yum.repos.d/CentOS-Base.repo这个文件配置有问题,注释掉mirrorlist配置项,放开baseurl配置项就可以了,试了一下,还是报错,但报错信息跟之前的不一样了。
报错:http://mirror.centos.org/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - “The requested URL returned error: 404 Not Found”,应该是配置中的链接访问不了,试着在浏览器中访问了下这个地址,只能访问到http://mirror.centos.org/centos/6,后面的内容centos官网上已经被删了。
解决办法,把源站点配置改为国内清华大学站点:
https://mirrors.tuna.tsinghua.edu.cn/centos-vault
确保清华大学站点能访问:
修改yum源站点配置:
先把/etc/yum.repos.d目录下的所有repo文件重命名为*.repo_bak,然后创建CentOS-tsinghua.repo文件,其内容对照清华大学镜像站中的目录修改后如下:
[base]
name=CentOS-6.5 - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.5 - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/updates/x86_64/
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.5 - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/extras/x86_64/
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.5 - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.5 - Contrib
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/contrib/x86_64/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
再次yum install httpd -y,还是报错。但报错信息是:[Errno 14] Peer cert cannot be verified or peer cert invalid
原因:yum server的ca证书不被认可。
解决办法:在/etc/yum.conf文件中,添加以下一行内容即可。
sslverify=false
再次yum install httpd -y,问题彻底解决。
补充:
原repo文件中的变量
$releasever
$basearch
这些值怎么获取?
这些不是shell变量,因此在bash中是打印不出结果值的,这些是由yum提供的值。
releasever是CentOS版本的主要版本,使用以下命令可以获取:
rpm -q --qf='%{VERSION}\n' centos-release
basearch是操作系统架构,使用以下命令可以获取:
uname -m