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源镜像站有:
- 阿里云,网址:https://opsx.alibaba.com/mirror
- 网易163,网址:http://mirrors.163.com/
- 清华大学,网址:http://mirrors.tuna.tsinghua.edu.cn/
- 中科大,网址:http://mirrors.ustc.edu.cn/
- 浙大,网址:http://mirrors.zju.edu.cn/
具体仓库的配置方法请参考站内指南。需要注意的是并非所有的镜像都包含上述列出的yum源,本人推荐阿里云、清华大学、中科大镜像站。