CentOS上,除了os类的yum源,还需要配置几个常用的源:epel、ius。
有很多国内很多镜像站点都提供了各类仓库的镜像站点,个人感觉比较全的是阿里云http://mirrors.aliyun.com和清华大学开源镜像站点https://mirrors.tuna.tsinghua.edu.cn。特别是后者,很多知名源项目的mirrorlist中都将其作为中国地区的唯一站点。如果有时候你在阿里镜像、搜狐镜像等知名站点都找不到某个源时,不妨去清华大学的站点找找。
1.1 EPEL
Extra Packages for Enterprise Linux (or EPEL) is a Fedora Special Interest Group that creates, maintains, and manages a high quality set of additional packages for Enterprise Linux, including, but not limited to, Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux (SL), Oracle Linux (OL).
简言之,EPEL是专门为RHEL、CentOS等Linux发行版提供额外rpm包的。很多os中没有或比较旧的rpm,在epel仓库中可以找到。
例如配置阿里云的epel:
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
1.2 IUS
在kernel.org内,清楚地说明了IUS项目是干什么的:
IUS is a community project that provides RPM packages for newer versions of select software for Enterprise Linux distributions.
Project Goals
Create high quality RPM packages for Red Hat Enterprise Linux (RHEL) and CentOS.
Promptly release updated RPM packages once new versions are released by the upstream developers.
No automatic replacement of stock RPM packages.
IUS只为RHEL和CentOS这两个发行版提供较新版本的rpm包。如果在os或epel找不到某个软件的新版rpm,软件官方又只提供源代码包的时候,可以来ius源中找,几乎都能找到。例如haproxy,在CentOS 6的epel中只有1.5版本的,但ius中却提供了1.6和1.7版本。
IUS源的站点根目录:https://dl.iuscommunity.org/pub/ius/。
IUS提供4个分支的rpm包:stable、archive、development和testing。显然,我们应该选择stable分支的包。
配置IUS源:
rpm -ivh https://centos5.iuscommunity.org/ius-release.rpm # CentOS 5
rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm # CentOS 6
rpm -ivh https://centos7.iuscommunity.org/ius-release.rpm # CentOS 7
rpm -ivh https://repo.ius.io/ius-release-el7.rpm # CentOS 7 New
新的源
yum install epel-release elrepo-release
yum install yum-plugin-elrepo
系统upgrade的时候,残存了上一个版本的软件包信息(比如升级到了attr-2.4.44,但系统中存在了Centos6下的软件包信息)。
解决办法:
1).配置正确的yum源
yum install epel-release
2).执行相关命令
yum clean all ##清除本地yum缓存
yum distro-sync ##同步本地软件和epel源的软件包信息
至此问题基本解决