zoukankan      html  css  js  c++  java
  • linux:软件包管理器Yum

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    软件包来源

    可供Yum下载的软件包包括Fedora本身的软件包以及源自rpmfusion和rpm.livna.org的Fedora Extras,全部是由Linux社区维护的,并且基本是自由软件。所有的包都有一个独立的GPG签名,主要是为了您的系统安全。而对於Fedora core 4.0 的用户,rpm.livna.org 的签名是自动导入并安装的。

    图形化前端

    Yum的图形化前端主要有yumex和kyum。它们并不是独立於Yum的,而是Yum的图形前端,也就是说在安装和使用Yumex和kyum同时,都是以Yum的安装和配置为基础;所以在用Yumex或kyum 时,必须先安装配置Yum。

      yum是干什么的


      使用redhat,fedora的linuxer肯定都为rpm著名的dependency hell而头疼(这也是所有基于rpm发行版都有的问题)。foo is needed by bar,bar is needed by foo。要装卸个软件,还得辛辛苦苦地梳理清楚所有依赖性问题,rpm的几个搜索站点成了时常光顾的场所,如果不幸碰到循环依赖,那就只有干瞪眼的分了。 有时加个--nodeps参数,倒是眼不见,心不烦,但这样装上的软件,你能保证正常使用吗,这样卸载软件,你能保证不影响其它软件工作吗,恐怕谁也不能 给出肯定的答案。每到这时,帽子们只有看着debian的 apt暗自羡慕了。好在,这些都已经成为过去时了。基于rpm的发行版现在也有了像apt那样自 动解决依赖关系的包管理工具了。其中一个著名的就是apt4rpm,这基本上是debian系统apt的在rpm发行版的移植。但是使用Redhat和 Fedora的linuxer你们知道吗,还有一个与apt功能类似的rpm包管理系统,那就是yum。Fedora系统已经自带,Redhat也有相应 的rpm下载。与apt相比,yum的功能一点也不弱,甚至还有许多胜过apt 之处。比如说,yum是Fedora系统自带的,因此它能使用fedora官方的软件源,完成各种官方发布>的各种升级。对于第三方软件源的支持,yum也 不差,大多数支持apt的repository注,也能支持yum,比如说freshrpms,fedora.us,livna等等。此外yum有一个比较 详细的log,可以查看何时升级安装了什么软件包等。yum的代码较apt更为精简等。


      一. yum是什么


      yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.


      它能便于管理大量系统的更新问题


      注:为什么要使用yum而不用apt,最简单的原因,Fedora自带


      二. yum特点


      *可以同时配置多个资源库(Repository)


      *简洁的配置文件(/etc/yum.conf)


      *自动解决增加或删除rpm包时遇到的倚赖性问题


      *使用方便


      *保持与RPM数据库的一致性


      三. yum安装


      Fedora自带


      #rpm -ivh yum-2.0.4-2.noarch.rpm


      四. yum配置


      注:修改和增加配置文件中的资源库,加快下载速度和拥有更多可更新的rpm包将/etc/yum.conf的内容全部替换为


      [main]


      cachedir=/var/cache/yum


      debuglevel=2


      logfile=/var/log/yum.log


      pkgpolicy=newest


      distroverpkg=fedora-release


      tolerant=1


      exactarch=1


      [fedora-us-1]


      name=Fedora Core 1 -- Fedora US mirror


      baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/os


      [fedora-us-1-updates]


      name=Fedora Core 1 updates -- Fedora US mirror


      baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/updates


      [fedora-us-1-stable]


      name=Fedora Linux (stable) for Fedora Core 1 -- Fedora US mirror


      baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/stable


      [freshrpms]


      name=Fedora Linux $releasever - $basearch - freshrpms


      baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms


      五. yum应用


      注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.


      检查有哪些可更新的rpm包


      #yum check-update


      安装rpm包,使xmms可以播放mp3


      #yum install xmms-mp3


      安装mplayer,同时自动安装相关的软件


      #yum install mplayer


      删除licq包,同时删除与该包有倚赖性的包


      #yum remove licq


      注:同时会提示删除licq-gnome,licq-qt,licq-text,非常方便


      系统更新(更新所有可以升级的rpm包,包括kernel)


      #yum -y update


      每天定期执行系统更新


      #chkconfig yum on


      #service yum start


      六. yum指令详解


      *rpm包的更新


      检查可更新的rpm包


      #yum check-update


      更新所有的rpm包


      #yum update


      更新指定的rpm包,如更新kernel和kernel source


      #yum update kernel kernel-source


      大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级


      #yum upgrade


      *rpm包的安装和删除


      安装rpm包,如xmms-mp3


      #yum install xmms-mp3


      删除rpm包,包括与该包有倚赖性的包


      #yum remove licq


      注:同时会提示删除licq-gnome,licq-qt,licq-text


      *yum暂存(/var/cache/yum/)的相关参数


      清除暂存中rpm包文件


      #yum clean packages


      清除暂存中rpm头文件


      #yum clean headers


      清除暂存中旧的rpm头文件


      #yum clean oldheaders


      清除暂存中旧的rpm头文件和包文件


      #yum clean或#yum clean all


      注:相当于yum clean packages + yum clean oldheaders


      *rpm包列表


      列出资源库中所有可以安装或更新的rpm包


      #yum list


      列出资源库中特定的可以安装或更新以及已经安装的rpm包


      #yum list mozilla


      #yum list mozilla*


      注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包


      列出资源库中所有可以更新的rpm包


      #yum list updates


      列出已经安装的所有的rpm包


      #yum list installed


      列出已经安装的但是不包含在资源库中的rpm包


      #yum list extras


      注:通过其它网站下载安装的rpm包


      *rpm包信息显示(info参数同list)


      列出资源库中所有可以安装或更新的rpm包的信息


      #yum info


      列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息


      #yum info mozilla


      #yum info mozilla*


      注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息


      列出资源库中所有可以更新的rpm包的信息


      #yum info updates


      列出已经安装的所有的rpm包的信息


      #yum info installed


      列出已经安装的但是不包含在资源库中的rpm包的信息


      #yum info extras


      注:通过其它网站下载安装的rpm包的信息


      *搜索rpm包


      搜索匹配特定字符的rpm包


      #yum search mozilla


      注:在rpm包名,包描述等中搜索


      搜索有包含特定文件名的rpm包


      #yum provides realplay


      七. 安全的更新freshrpms.net的rpm包


      安装freshrpms.net的GPG key #rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt


      编辑/etc/yum.conf,增加以下信息到尾部


      [freshrpms]


      name=Fedora Linux $releasever - $basearch - freshrpms


      baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms


      gpgcheck=1


      注:


      检查GPG Key


      # rpm -qa gpg-pubkey*


      显示Key信息


      #rpm -qi gpg-pubkey-e42d547b-3960bdf1


      删除Key


      #rpm -e gpg-pubkey-e42d547b-3960bdf1


    附:

    YUM是RedHat Linux在线安装更新及软件的工具,但是这是RHEL5的收费功能,如果没有购买Redhat的服务时不能使用RHEL5的更新源的,会提示注册。由于CentOS是从RedHat演化而来的免费Linux版本,因此可以利用CentOS的yum更新源来实现RHEL5的YUM功能。配置方法如下:

    检查yum是否安装,默认情况下都是安装好的,总共4各包。


    [root@linux-a ~]# rpm -qa |grep yum
    yum-metadata-parser-1.0-8.fc6
    yum-3.0.1-5.el5
    yum-rhn-plugin-0.4.3-1.el5
    yum-updatesd-3.0.1-5.el5

    配置yum更新源

    创建/etc/yum.repos.d/CentOS-Base.repo文件,定义yum更新源,www.linuxidc.com这里使用的是上海交大的CentOS更新源

    [root@linux-a ~]# vi /etc/yum.repos.d/CentOS-Base.repo

    [base]
    name=CentOS-5-Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever5&arch=$basearch&repo=os
    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    baseurl=http://ftp.sjtu.edu.cn/centos/5/os/$basearch/
    gpgcheck=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    #released updates
    [update]
    name=CentOS-5-Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates
    baseurl=http://ftp.sjtu.edu.cn/centos/5/updates/$basearch/
    gpgcheck=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    #packages used/produced in the build but not released
    [addons]
    name=CentOS-5-Addons
    #mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons
    baseurl=http://ftp.sjtu.edu.cn/centos/5/addons/$basearch/
    gpgcheck=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    #additional packages that may be useful
    [extras]
    name=CentOS-5-Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=extras
    baseurl=http://ftp.sjtu.edu.cn/centos/5/extras/$basearch/
    gpgcheck=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-5-Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=centosplus
    baseurl=http://ftp.sjtu.edu.cn/centos/5/centosplus/$basearch/
    gpgcheck=0
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-5-Contrib
    #mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=contrib
    baseurl=http://ftp.sjtu.edu.cn/centos/5/contrib/$basearch/
    gpgcheck=0
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
    # vi dag.repo
    [dag]
    name=Dag RPM Repository for RHEL5
    baseurl=http://ftp.riken.jp/Linux/dag/RedHat/el5/en/$basearch/dag/
    enabled=1
    gpgcheck=0
    gpgkey=http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt


    最后执行yum update.


  • 相关阅读:
    兔子数
    忠诚
    mysql字段名与关键字冲突(near "to":syntax error)
    C/C++使用心得:enum与int的相互转换
    ubuntu重新安装 apache2
    ubuntu 删除mysql
    Notepad++ 代码格式化
    linux文件字符集转换(utf8-gb2312)
    字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
    c语言判断是否是utf8字符串,计算字符个数
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300999.html
Copyright © 2011-2022 走看看