• CentOS6 yum源支持更多rpm包的升级(使用第三方软件库EPEL、RPMForge与RPMFusion)


    转载于http://blog.csdn.net/erazy0/article/details/6878153

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

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

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

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

    一、安装yum-priorities插件。

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

    [root@CentOS ~]# yum install 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 6.0):
    # 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-6
    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-6
    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-6
    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-6
    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-6
    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-6
    priority=2

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

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

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

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

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

    2、导入DAG的PGP Key

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

    3、设置/etc/yum.repos.d/epel.repo文件中源的级别,就是添加priority=11这句。
    如我的epel.repo文件内容:
    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    priority=11

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

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

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

    1、下载rpmforge的rpm文件包

    32位系统
    [root@CentOS ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

    64位系统
    [root@CentOS ~]# wget rpmforge-release-0.5.2-2.el6.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.2-2.el6.rf.*.rpm
    如果报XXX not an rpm package的错,查看是否wget下载的包不完整,包的大小是12K

    4、安装rpmforge的rpm文件包

    [root@CentOS ~]# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.*.rpm

    5、设置/etc/yum.repos.d/rpmforge.repo文件中源的级别,就是添加priority=12这句,如我的rpmforge.repo文件内容:
    ### Name: RPMforge RPM Repository for RHEL 6 - dag
    ### URL: http://rpmforge.net/
    [rpmforge]
    name = RHEL $releasever - RPMforge.net - dag
    baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
    mirrorlist = http://apt.sw.be/redhat/el6/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

    [rpmforge-extras]
    name = RHEL $releasever - RPMforge.net - extras
    baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
    mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
    #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
    enabled = 0
    protect = 0
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
    gpgcheck = 1

    [rpmforge-testing]
    name = RHEL $releasever - RPMforge.net - testing
    baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
    mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-testing
    #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
    enabled = 0
    protect = 0
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
    gpgcheck = 1

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

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

    [root@CentOS ~]# rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/6/i386/rpmfusion-free-release-6-0.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、测试各插件是否生效

    [root@CentOS ~]# yum check-update
    如果出现类似以下输出,则表示配置成功。
    Loaded plugins: fastestmirror, priorities, refresh-packagekit
    Loading mirror speeds from cached hostfile
    下面是一长串软件列表,最后一列形如:
    epel    
    rpmforge
    base
    说明各个软件包的来源。

    备注:
    1、如果yum使用过程中出现类似以下错误,多半是因为rpmfusion的server无法连接,可以不用管它,或者将/etc/yum.repo.d/目录下rpmfusion相关的的repo文件中的enable=1改为0,关掉rpmfusion相关的源列表。
    YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
     Eg. </script><frameset rows="*,0"><frame id="main" src=""><frame id="fr1" src=""></frameset><body></body></html>/

    2、rpmfusion还会出现类似如下错误:
    Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmfusion-foo. Please verify its path and try again
    原因引自http://rpmfusion.org/FAQ#head-33eabca99c1c4fa289a1d757bda49721cd27871a:
    Yum cannot connect to the RPM Fusion servers if you get above message. That could be a problem with your local network or a problem with the MirrorManager servers from RPM Fusion. If it's the latter use this comment to temporary work around the problem:
    方法是去除所有baseurl和mirrorlist前面的#如下:
    su -c "sed -i 's|^#baseurl|baseurl| ; s|^mirrorlist|#mirrorlist|' /etc/yum.repos.d/rpmfusion*free*repo"

    To undo the change later use this command:
    su -c "sed -i 's|^baseurl|#baseurl| ; s|^#mirrorlist|mirrorlist|' /etc/yum.repos.d/rpmfusion*free*repo"


    还可以参考:

    http://hi.baidu.com/nacoo2000/blog/item/afeeb4396748813fb9998f18.html

    http://hi.baidu.com/nacoo2000/blog/item/792e3b87d057172566096e27.html

  • 相关阅读:
    asp.net导出数据到execl并保存到本地 不需要调用Office组件
    动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等
    Oracle内置SQL函数收集整理大全
    无比强大的GridView,表头固定,表体有滚动条可滚动
    很不错的asp.net文件上传类c# 搜索文件 移动文件 删除文件等
    【备用】非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
    Asp.Net读取Execl常见问题收集
    经常用到的交叉表问题,一般用动态SQL能生成动态列
    C# asp.net中常见的字符串处理函数及数字格式化
    比较两个DataTable中不同的记录,且合并两个DataTable的列显示,有图
  • 原文地址:https://www.cnblogs.com/eter/p/l_c_6_000007.html
Copyright © 2020-2023  润新知