yum命令详解

说明:
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 的功能忘记了呢!切记切记!

发表评论

邮箱地址不会被公开。 必填项已用*标注