CentOS系统带有几个官方源,默认启用的仅有base, updates和extras三个。如果希望从源安装Nginx,高版本的gcc/PHP等软件,则要导入提供软件包的第三方源。本文整理常见的第三方yum源,并以CentOS 7为例介绍其安装方法。

第三方yum源

1. EPEL

EPEL是Extra Packages for Enterprise Linux的缩写,其为EL6或EL7提供重建的Fedora组件,并且不会替换base中的包。EPEL算得上是最著名的第三方软件源,几乎各个云服务器厂商提供的CentOS 系统均会自带该源并默认启用。其收录了web中常用的Nginx软件包。

EPEL的官网是:http://fedoraproject.org/wiki/EPEL,可以通过yum install -y epel-release安装。

2. SCL

SCL是Software Collections的缩写,由CentOS 特别兴趣小组所维护。其收录了许多程序的新版本,例如gcc, PHP, git, python等。安装的软件可与旧版共存,包名多以rh-为前缀。

SCL的官网是https://www.softwarecollections.org,CentOS 7的安装方法是:yum install centos-release-scl。安装完成后在/etc/yum.repos.d目录下会出现CentOS-SCLo-scl.repo和CentOS-SCLo-scl-rh.repo两个文件。安装后源默认启用。

3. ELRepo

ELRepo是The Community Enterprise Linux Repository的缩写,旨在提供驱动程序来增强系统的硬件支持(包括:显示、文件系统、硬件监控、网络、音效、网络摄像镜驱动程序)。也提供较新版的内核,例如支持BBR算法的4.9+内核。

ELRepo的官方是http://elrepo.org/,CentOS 7系统的安装方法是:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

安装完成后在/etc/yum.repos.d目录下出现elrepo.repo文件,可编辑文件中的enable的值启用具体仓库,也可在运行时用--enablerepo="xxx"指定使用的软件库。

4. IUS

IUS的官网是https://ius.io/,旨在为RHEL和CentOS提供高质量、最新版的软件,如PHP, Python, MySQL等。CentOS 7安装该源的命令为:rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm

5. RPMfusion

RPMfusion提供Fedora Project或 Red Hat不愿发行的软件,包含“免费(开源软件)”和“非免费(源代码可公开获取但不开源且限非商业用途)”两种类型的仓库。

RPMfusion的官网是https://rpmfusion.org/,CentOS 7的安装方法是:

# 免费库
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
# 非免费库
yum localinstall --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

6. Remi

Remi维护大量组件,包括最新版的PHP, GLPI等。Remi的safe仓库不会替代系统的基本组件,但remi-phpxx.repo中的软件包会替代系统默认的php。需要注意的是Remi可能会与IUS的软件包冲突,因为双方都提供最新版的PHP。

Remi的官方网站是http://rpms.remirepo.net/,CentOS 7的安装方法是:yum install -y remi-release

Webtatic

提供较新版的PHP、MySQL及其它组件。建议用IUS或SCL代替。

软件官方维护的源

除上述收录多个软件包的综合源外,还有许多由软件官方维护的源,例如Nginx, Gitlab, Nodejs等。这些源的安装和使用方法请参考官方指南。

源管理

源的配置文件均位于/etc/yum.repos.d目录下,可用vim, nano等编辑器打开配置文件并编辑。

一些有用的源管理yum命令:

  • yum repolist: 列出所有启用的源, 等同于yum repolist enabled
  • yum repolist disabled: 列出所有禁用的源;
  • yum repoinfo [enabled|disabled]:列出启用(禁用)源的更详细信息
  • yum --disablerepo="*" --enablerepo="xxxx" install/search: 从指定源安装/搜索软件;“–disablerepo”和”–enablerepo”选项可独立或配合使用,动态启用和禁用源。

国内镜像

因为某些原因,从位于境外的源镜像安装软件慢的让人抓狂。如果遇到了此种情形,建议使用代理,或者配置源的地址为国内镜像的地址。国内知名的yum源镜像站有:

  1. 阿里云,网址:https://opsx.alibaba.com/mirror
  2. 网易163,网址:http://mirrors.163.com/
  3. 清华大学,网址:http://mirrors.tuna.tsinghua.edu.cn/
  4. 中科大,网址:http://mirrors.ustc.edu.cn/
  5. 浙大,网址:http://mirrors.zju.edu.cn/

具体仓库的配置方法请参考站内指南。需要注意的是并非所有的镜像都包含上述列出的yum源,本人推荐阿里云、清华大学、中科大镜像站。

参考

  1. https://wiki.centos.org/zh/AdditionalResources/Repositories