说明:
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。可以利用yum进行查询、安装、升级与移除功能。
yum的使用真是非常简单,就是透过yum这个命令啊!那么这个命令怎么用呢? 用法很简单,就让我们来简单的谈谈:
参数:
# yum [option] [查询工作项目] [相关参数] [option]:主要的选项,包括有: -y :当 yum 要等待使用者输入时,这个选项可以自动提供 yes 的回应; --installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径 [查询工作项目] [相关参数]:这方面的参数有: search :搜寻某个软件名称或者是描述 (description) 的重要关键字; list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa; info :同上,不过有点类似 rpm -qai 的运行结果; provides:从文件去搜寻软件!类似 rpm -qf 的功能!
实例:
范例一:搜寻磁盘阵列 (raid) 相关的软件有哪些?
# yum search raid ....(前面省略).... mdadm.i386 : mdadm controls Linux md devices (software RAID arrays) lvm2.i386 : Userland logical volume management tools ....(后面省略)....
在冒号 (:) 左边的是软件名称,右边的则是在 RPM 内的 name 配置 (软件名)
瞧!上面的结果,这不就是与 RAID 有关的软件吗?如果想了解 mdadm 的软件内容呢?
范例二:找出mdadm这个软件的功能为何
# yum info mdadm Installed Packages <==这说明该软件是已经安装的了 Name : mdadm <==这个软件的名称 Arch : i386 <==这个软件的编译架构 Version: 2.6.4 <==此软件的版本 Release: 1.el5 <==释出的版本 Size : 1.7 M <==此软件的文件总容量 Repo : installed <==容器回报说已安装的 Summary: mdadm controls Linux md devices (software RAID arrays) Description: <==看到否?这就是 rpm -qi 嘛! mdadm is used to create, manage, and monitor Linux MD (software RAID) devices. As such, it provides similar functionality to the raidtools package. However, mdadm is a single program, and it can perform almost all functions without a configuration file, though a configuration file can be used to help with some common tasks.
范例三:列出 yum 服务器上面提供的所有软件名称
# yum list Installed Packages <==已安装软件 Deployment_Guide-en-US.noarch 5.2-9.el5.centos installed Deployment_Guide-zh-CN.noarch 5.2-9.el5.centos installed Deployment_Guide-zh-TW.noarch 5.2-9.el5.centos installed ....(中间省略).... Available Packages <==还可以安装的其他软件 Cluster_Administration-as-IN.noarch 5.2-1.el5.centos base Cluster_Administration-bn-IN.noarch 5.2-1.el5.centos base ....(底下省略)....
上面提供的意义为:『 软件名称 版本 在那个容器内 』
范例四:列出目前服务器上可供本机进行升级的软件有哪些?
# yum list updates <==一定要是 updates 喔! Updated Packages Deployment_Guide-en-US.noarch 5.2-11.el5.centos base Deployment_Guide-zh-CN.noarch 5.2-11.el5.centos base Deployment_Guide-zh-TW.noarch 5.2-11.el5.centos base ....(底下省略)....
上面就列出在那个容器内可以提供升级的软件与版本!
范例五:列出提供 passwd 这个文件的软件有哪些
# yum provides passwd passwd.i386 : The passwd utility for setting/changing passwords using PAM passwd.i386 : The passwd utility for setting/changing passwords using PAM
找到啦!就是上面的这个软件提供了 passwd 这个程序!
透过上面的查询,你应该大致知道 yum 如何用在查询上面了吧?那么实际来应用一下:
例题:
1.yum list pam*查询以pam为开头的软件名称有哪些?而其中尚未安装的又有哪些
# yum list pam* Installed Packages pam.i386 0.99.6.2-3.27.el5 installed pam_ccreds.i386 3-5 installed pam_krb5.i386 2.2.14-1 installed pam_passwdqc.i386 1.0.2-1.2.2 installed pam_pkcs11.i386 0.5.3-23 installed pam_smb.i386 1.1.7-7.2.1 installed Available Packages <==底下则是『可升级』的或『未安装』的 pam.i386 0.99.6.2-4.el5 base pam-devel.i386 0.99.6.2-4.el5 base pam_krb5.i386 2.2.14-10 base
如上所示,所以可升级者有 pam, pam_krb5 这两个软件,完全没有安装的则是 pam-devel 这个软件罗!
2.yum install 软件名称安装前面练习找到的未安装的pam-devel
# yum install pam-devel Setting up Install Process Parsing package install arguments Resolving Dependencies <==先检查软件的属性相依问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated --> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel --> Running transaction check ---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated filelists.xml.gz 100% |=========================| 1.6 MB 00:05 filelists.xml.gz 100% |=========================| 138 kB 00:00 -> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: pam-devel i386 0.99.6.2-4.el5 base 186 k Updating: pam i386 0.99.6.2-4.el5 base 965 k Transaction Summary ============================================================================= Install 1 Package(s) <==结果发现要安装此软件需要升级另一个相依的软件 Update 1 Package(s) Remove 0 Package(s) Total download size: 1.1 M Is this ok [y/N]: y <==确定要安装! Downloading Packages: <==先下载! (1/2): pam-0.99.6.2-4.el5 100% |=========================| 965 kB 00:05 (2/2): pam-devel-0.99.6.2 100% |=========================| 186 kB 00:01 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction <==开始安装! Updating : pam ######################### [1/3] Installing: pam-devel ######################### [2/3] Cleanup : pam ######################### [3/3] Installed: pam-devel.i386 0:0.99.6.2-4.el5 Updated: pam.i386 0:0.99.6.2-4.el5 Complete!
有没有很高兴啊!你不必知道软件在哪里,你不必手动下载软件,你也不必拿出原版光盘出来mount之后查询再安装!全部不需要,只要有了yum这个家伙,你的安装、升级再也不是什么难事! 而且还能主动的进行软件的属性相依处理流程,如上所示,一口气帮我们处理好了所有事情! 是不是很过瘾啊!而且整个动作完全免费!够酷吧!
3.yum remove 软件名称移除刚刚安装的pam-devel
# yum remove pam-devel Setting up Remove Process Resolving Dependencies <==同样的,先解决属性相依的问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Removing: pam-devel i386 0.99.6.2-4.el5 installed 495 k Transaction Summary ============================================================================= Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) <==还好,并没有属性相依的问题,单纯移除一个软件 Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : pam-devel ######################### [1/1] Removed: pam-devel.i386 0:0.99.6.2-4.el5 Complete!
附录:
连移除也这么简单!看来,似乎不需要 rpm 这个命令也能够快乐的安装所有的软件了! 虽然是如此,但是 yum 毕竟是架构在 rpm 上面所发展起来的,所以,鸟哥认为你还是得需要了解 rpm 才行!不要学了 yum 之后就将 rpm 的功能忘记了呢!切记切记!