yum

  使用 Redhat、Fedora 的 Linuxer 肯定都为 RPM 著名的 dependency hell 而头疼。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 更为精简。

        下载了 Chrome 的 RPM 包,安装时发现依赖 lsb 和 wget。而安装 lsb 时,发现其依赖居然有好几十个。如果一个个 RPM 包去找来安装,简直要疯掉,更别提这几十个 RPM 包是否会有其它的依赖。而直接使用 yum install redhat-lsb.x86_64 就全部搞定,那个爽哇!


一. yum 是什么

        yum = Yellow dog Updater Modified  主要功能是更方便的添加/删除/更新 RPM 包。它能自动解决包的依赖问题便于管理大量系统的更新。

        yum 解决依赖的原理是,需要配置资源库,对于被依赖的其它包,可以自行下载并安装。所以,如果资源库配置不全,导致找不到某些被依赖的包时,仍然有可能无法正确安装

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


二. yum 特点

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

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

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

   

三. yum 安装

        Fedora 自带

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


四. yum 配置

        yum 的默认配置文件在 /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

        可以将新的 Repository 直接配置在 yum.conf 中,也可以放在 /etc/yum.repos.d/ 目录下,推荐后者。yum 的 repodir 变量默认指向 /etc/yum.conf 和 /etc/yum.repos.d/ 目录,会自动加载以上文件。

  

五. yum 指令详解

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

        1. 检查可更新的 RPM 包

   #yum check-update

   2. 更新所有的 RPM 包

   #yum update

   3. 更新指定的 RPM 包,如更新 kernel 和 kernel source

   #yum update kernel kernel-source

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

   #yum upgrade

   5. 安装 RPM 包,如 xmms-mp3

   #yum install xmms-mp3

   6. 删除 RPM 包,包括与该包有依赖性的包

   #yum remove licq

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

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

   #yum -y update

        8. 每天定期执行系统更新

   #chkconfig yum on

   #service yum start

   9. 清除暂存中 RPM 包文件

   #yum clean packages

   10. 清除暂存中 RPM 头文件

   #yum clean headers

   11. 清除暂存中旧的 RPM 头文件

   #yum clean oldheaders

   12. 清除暂存中旧的 RPM 头文件和包文件

   #yum clean 或 #yum clean all

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

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

   #yum list

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

   #yum list mozilla

   #yum list mozilla*

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

   15. 列出资源库中所有可以更新的 RPM 包

   #yum list updates

   16. 列出已经安装的所有的 RPM 包

   #yum list installed

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

   #yum list extras

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

   18. 列出资源库中所有可以安装或更新的 RPM 包的信息,比 list 更详细

   #yum info

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

   #yum info mozilla

   #yum info mozilla*

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

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

   #yum info updates

   21. 列出已经安装的所有的 RPM 包的信息

   #yum info installed

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

   #yum info extras

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

   23. 搜索匹配特定字符的 RPM 包

   #yum search mozilla

   注:在 RPM 包名、包描述等中搜索

   24. 搜索有包含特定文件名的 RPM 包

   #yum provides realplay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值