且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RHEL/CentOS 5.x使用第三方软件库(EPEL与RPMForge、RPMFusion软件库)

更新时间:2022-02-20 00:51:11

在CentOS下运行yum install flash-plugin或yum install mplayer的时候,提示库里没有找到这个软件?为什么会这样?因为CentOS是RHEL编译过来的,去掉了所有关于版权问题的东西。因此,在没有使用第三方软件库的情况下,很多软件无法用yum install来直接安装。

EPEL(Extra Packages for EnterpriseLinux )软件库提供为 EL4 及 EL5 重新编译的 Fedora 组件。这个软件库在不替换系统组件方面下了功夫。在某些情况下它尝试直接针对 CentOS 兼容性的问题,但坚决否定软件库间的兼容性是目标之一。当它与其它第三方软件库混合使用时,问题可能会出现。故此,当你使用 EPEL 时,尤其是当你亦会运用其它件库的组件时,请确保你使用 yum 的 Priorities 插件。

RPMForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库。

下面,偶就来讲解下如何使用EPEL与RPMForge、RPMFusion软件仓库:

一、安装yum-priorities插件。

这个插件是用来设置yum在调用软件源时的顺序的。因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装yum-priorities这插件了。

[root@CentOS ~]# yum install yum-priorities #安装yum-priorities

安装完后需要设置/etc/yum.repos.d/ 目录下的.repo相关文件(如CentOS-Base.repo),在这些文件中插入顺序指令:priority=N (N为1到99的正整数,数值越小越优先) 
一般的配置是这样的:

[base], [addons], [updates], [extras] … priority=1 
[CentOSplus],[contrib] … priority=2 
其他第三的软件源为:priority=N (推荐N>10)

如我的CentOS-Base.repo配置为:

# CentOS-Base.repo 

# The mirror 
system uses the connecting IP address of the client and the 
# update status of each mirror to pick mirrors that are updated to and 
# geographically close to the client. You should use this for CentOS updates 
# unless you are manually picking other mirrors. 

# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead. 

#

[base] 
name=CentOS-$releasever – Base 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=os 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/os/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=1

#released updates 
[updates] 
name=CentOS-$releasever – Updates 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=updates 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/updates/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=1

#packages used/produced in the build but not released 
[addons] 
name=CentOS-$releasever – Addons 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=addons 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/addons/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=1

#additional packages that may be useful 
[extras] 
name=CentOS-$releasever – Extras 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=extras 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/extras/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=1

#additional packages that extend functionality of existing packages 
[CentOSplus] 
name=CentOS-$releasever – Plus 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=CentOSplus 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/CentOSplus/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=2

#contrib – packages by CentOS Users 
[contrib] 
name=CentOS-$releasever – Contrib 
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=contrib 
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/contrib/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 
priority=2

二、下载与安装相应EPEL的rpm文件包

1,下载与安装EPEL的rpm文件包

32位系统

[root@CentOS ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

64位系统

[root@CentOS ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

如果您不清楚您的系统内核,请使用 uname -a 命令来查看您的内核信息。

2,导入DAG的PGP Key

[root@CentOS ~]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

3,设置/etc/yum.repos.d/epel.repo文件中源的级别,就是添加priority=11这句。

如我的epel.repo文件内容:

[epel] 
name=Extra Packages for Enterprise Linux 5 – $basearch 
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch 
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch 
failovermethod=priority 
enabled=1 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL 
priority=11

[epel-debuginfo] 
name=Extra Packages for Enterprise Linux 5 – $basearch – Debug 
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug 
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch 
failovermethod=priority 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL 
gpgcheck=1

[epel-source] 
name=Extra Packages for Enterprise Linux 5 – $basearch – Source 
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS 
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch 
failovermethod=priority 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL 
gpgcheck=1

三、下载与安装相应rpmforge的rpm文件包

1,下载rpmforge的rpm文件包

32位系统

[root@CentOS ~]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

64位系统

[root@CentOS ~]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

2,安装DAG的PGP Key

[root@CentOS ~]# rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

3,验证rpmforge的rpm文件包

[root@CentOS ~]# rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm

4,安装rpmforge的rpm文件包

[root@CentOS ~]# rpm -i rpmforge-release-0.5.1-1.el5.rf.*.rpm

5,设置/etc/yum.repos.d/rpmforge.repo文件中源的级别,就是添加priority=12这句。

如我的rpmforge.repo文件内容:

### Name: RPMforge RPM Repository for Red Hat Enterprise 5 – dag 
### URL: http://rpmforge
.net
[rpmforge] 
name = Red Hat Enterprise $releasever – RPMforge.net – dag 
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge 
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge 
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge 
enabled = 1 
protect = 0 
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag 
gpgcheck = 1 
priority=12

四、下载与安装相应rpmfusion的rpm文件包

http://rpmfusion.org/

(CentOS官方说这个软件库里面的软件稳定性不如rpmforge,选用!rpmfusion官方站:http://rpmfusion.org)

[root@CentOS ~]# rpm -Uvh 

http://download1.rpmfusion.org/free/el/updates/5/x86_64/rpmfusion-free-release-5-1.noarch.rpm

[root@CentOS ~]# rpm -Uvh http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm

五、测试

1,测试升级

[root@CentOS ~]# yum check-update

输出信息应该会有以下两行:

Loading “priorities” plugin 
… 
XX packages excluded due to repository priority protections

2,安装下mplayer播放器试试,如果安装成功了就没有问题了。

[root@CentOS ~]# yum install mplayer

PS:以上配置在RHEL/CentOS 5.X所有系列都可以使用!由本人验证总结整理。

参考文档:http://wiki.centos.org/zh/AdditionalResources/Repositories/RPMForge





本文转自 taojin1240 51CTO博客,原文链接:http://blog.51cto.com/taotao1240/917278,如需转载请自行联系原作者