首先出现这个问题是由于官方的repository里面没有我们需要的rpm包,所以我们可以先试一下换源难呢过不能解决问题,可以查看我之前的教程
如果不可以,我们就要安装epel我们来了解下epel
RHEL以及他的衍生发行版如CentOS、ScientificLinux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题。
什么是EPEL?
EPEL的全称叫 Extra Packages for Enterprise linux。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。
如果你知道rpmfusion.org的话,拿 rpmfusion 做比较还是很恰当的,rpmfusion 主要为桌面发行版提供大量rpm包,而EPEL则为服务器版本提供大量的rpm包,而且大多数rpm包在官方 repository 中是找不到的。
另外一个特点是绝大多数rpm包要比官方repository 的rpm包版本要来得新,比如我前些日子在CentOS上安装的PHP,RHEL为了稳定性还在延用5.1.6版,我记得这是去年上半年的版本,而php的最新版本已经到5.3.2,如果在php5.1.6的基础上安装phpmyadmin,则会提示php版本过低,这时候,EPEL中提供的较新php rpm就能很方便的派上用场了。
yum install -y epel-release
但是
安装完epel后,我们在make cache或则安装包的时候回出现如下问题:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
其实这是因为yum-epel升级到0.5.2版本,更换了https链接,所以原来的镜像列表就过时了
解决方法一:
yum –disablerepo=epel -y update ca-certificates
记住一定要加上–disablerepo=epel,否则怎么都更新不了
解决方法二:
以手动去改镜像列表
sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
把原来epel用的https改成http
参考文献:
https://serverfault.com/questions/637549/epel-repo-for-centos-6-causing-error?answertab=votes