RHEL以及他的衍生发行版如CentOS、Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而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就能很方便的派上用场了。
如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
常用的 CentOS 5/6/7 yum 源
rpmforge
# centos 5 i386 rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm # centos 5 x86_64 rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm # centos 6 i686 rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686. # centos 6 x86_64 rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm # centos 7 rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
epel
# centos 5 i386 rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm # centos 5 x86_64 rpm -Uvh http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm # centos 6 i386 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # centos 6 x86_64 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # centos 7 rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
或者: http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
或者:yum install epel-release
remi
# centos 5 rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # centos 6 rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # centos 7 rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
vim /etc/yum.repos.d/remi.repo
更改 enabled=1
ius
# centos 5 i386 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/5/i386/ius-release-1.0-13.ius.centos5.noarch.rpm # centos 5 x86_64 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/5/x86_64/epel-release-5-4.noarch.rpm # centos 6 i386 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/i386/ius-release-1.0-13.ius.centos6.noarch.rpm # centos 6 x86_64 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-13.ius.centos6.noarch.rpm # centos 7 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
webtatic源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RPMFusion源
RPMFusion目前还没有centos7版本的repo
CentOS官方说RPMFusion软件库里面的软件稳定性不如rpmforge。详请见:http://rpmfusion.org/
记录几个常用的CentOS 7下的yum源,方便安装这些软件。
PHP
使用remi源:
$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
MariaDB
Here is your custom MariaDB YUM repository entry for CentOS. Copy and paste it into a file under /etc/yum.repos.d/ (we suggest naming the file MariaDB.repo or something similar).
# MariaDB 10.1 CentOS repository list - created 2016-03-31 09:25 UTC# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
执行安装命令:
sudo yum install MariaDB-server MariaDB-client
Redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
设置service方式启动,参见: quickstart 和 Redis生成环境自动启动
Nginx
To add NGINX yum repository, create a file named/etc/yum.repos.d/nginx.repo and paste one of the configurations below:
CentOS:
[nginx]
name=nginxrepo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
阿里云
① 备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
② 下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
③ 之后运行yum makecache生成缓存
以上为国外站点,可参考: 国内的一些开源镜像站汇总
东软:http://mirrors.neusoft.edu.cn/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
源操作相关命令
yum clean all //清除源缓存信息,否则会出现错误:
Metadata file does not match checksum
yum makecache //重建源缓存信息
yum install --disablerepo=* --enablerepo=reponame package //从reponame源安装一个package包yum repolist ##检查是否已添加至源列表
修改yum源的方法有两种,很多朋友喜欢修改yum.repos.d这个文件进行更改,deepvps感觉这个方法不是太好,以下这个方法就方便多了。 在CentOS系统中,可以直接通过yum来安装组件,但系统默认的yum源速度往往不尽人意,都连接海外的,为了在国内达到快速安装的目的,就要需要修改yum源,可以使用http://mirrors.163.com/ http://mirrors.sohu.com 这2个国内源。 1、进入存放源配置的文件夹 cd /etc/yum.repos.d 2、备份默认源 mv ./CentOS-Base.repo ./CentOS-Base.repo.bak 3、使用wget下载163的源 http://mirrors.163.com/.help/centos.html wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 或 wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo 4、把下载下来的文件CentOS-Base-163.repo设置为默认源 mv CentOS6-Base-163.repo CentOS-Base.repo 通过上述操作就把默认源修改为163的了。当然上述的第三、四步可以合并为如下: wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -O CentOS-Base.repo 5、运行yum makecache生成缓存 再试试 yum update就知道可以了。
ISO镜像搭建高速的本地源
系统最小化安装的同学很多包可以快速的继续从iso镜像中来补充
sudo mv CentOS-7.0-1406-x86_64-DVD.iso /mnt
sudo mkdir /mnt/centos #创建镜像挂载目录
sudo vi /etc/fstab #配置开机自动挂载iso镜像
#追加下面一行
/mnt/CentOS-7.0-1406-x86_64-DVD.iso /mnt/centos iso9660 defaults,ro,loop 0 0
sudo mount -a #全量挂载一次
sudo vi /etc/yum.repos.d/CentOS-Local.repo #新建本地源配置文件
#添加下面几行
[local]
name=local
baseurl=file:///mnt/centos
enabled=1
gpgcheck=1
gpgkey=file:///mnt/centos/RPM-GPG-KEY-CentOS-7
#接着重建下yum源缓存
CentOS默认自带CentOS-Base.repo源,但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版。Fedora自带的源中也找不到很多多媒体软件,如果需要安装,必需先添加其他源,如RPMFusion和RPMForge等第三方软件库。 下面GoFace来一一介绍各种第三方软件库,以下软件库适用于与RHEL完全兼容的linux发行版,如CentOS,Fedora,Scientific Linux。Scientific Linux大家可能有点陌生,它与CentOS类似,是RedHat Linux的克隆版,GoFace之前有过介绍:http://blog.51osos.com/linux/scientific-linux/ 。
源如何使用各种源
priority=N (N为1到99的正整数,数值越小越优先) [ [CentOSplus],[contrib] … priority= 其他第三的软件源为:priority=N (推荐N>) vi remi.repo 将[remi] 中的 enabled=0 改成 enabled=1 来启用 remi 源 rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL- rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi 在remi.repo中和epel.repo中添加priority设置即可使用。