13.3 为基于RPM的Linux系统安装软件包及其依赖程序

yum install [package]

虽然rpm命令的功能强大,但使用一段时间后,当试图安装需要依赖其他东西的软件包时,就会很快遇到问题,也就是所谓的“依赖关系地狱(dependency hell)”问题。为了安装软件包A,还需要下载和安装软件包B和C,但为了安装C,还需要下载和安装软件包D和E,但为了安装E……唉,没完没了!

早在几年前,基于Debian的Linux系统(本章稍后会介绍这个系统)就用功能强大而有用的apt解决了这个问题。基于RPM的Linux系统也能够使用apt,但经常使用的是相对来说比较新但还不是很成熟的yumyum起初是为基于RPM的Yellow Dog这一发行版的Linux系统开发的(因此这也是yum这个名称的来源,它是“Yellow Dog Updater, Modified”的简称),现在它已经得到广泛地使用,但在功能和可用性上仍然落后于apt。不过,因为很多系统附带了yum,所以本书将介绍一下。

yum命令是rpm的一个包装器,可以安装、升级和卸载软件包。除此以外,它还可以自动处理软件包之间的依赖性。例如,如果想安装前面例子中的软件包A,yum就可以自动下载和安装A、B、C等软件包。以后,如果想在系统中删除A,yum也可以卸载它,如果系统中没有其他软件包需要B和C,yum也一并卸载它们。

yum安装软件也相当容易。假设你想安装一个媒体播放器XMMS(不足为奇,这个名字代表的是X Multimedia System)。为了安装XMMS,还需要再安装几个它依赖的其他软件。有了yum,这一安装过程就不像手工用rpm逐一安装它们时那么麻烦了。首先,不需要亲自查找和下载xmms软件包,因为yum会为你自动下载好XMMS和其他所有的依赖包。

美中不足的是,yum在进行处理时,它的输出内容极为啰嗦。以下列举的输出已经删减了大量内容,但还是显得有些冗长。无论如何,这些内容应该可以帮你了解使用yum时,能够看到的大致内容。

  1. # yum install xmms
  2. Setting up Install Process
  3. Setting up repositories
  4. update 100% |======================| 951 B 00:00
  5. base 100% |======================| 1.1 kB 00:00
  6. Resolving Dependencies
  7. --> Populating transaction set with selected
  8. packages. Please wait.
  9. ---> Downloading header for xmms to pack into transaction set.
  10. xmms-1.2.10-9.i386.rpm 100% |==========| 24 kB 00:00
  11. --> Restarting Dependency Resolution with new changes.
  12. ---> Downloading header for gtk+ to pack into transaction set.
  13. gtk%2B-1.2.10-33.i386.rpm 100% |==========| 23 kB 00:00
  14. Dependencies Resolved
  15. Package Arch Version Repository Size
  16. Installing:
  17. xmms i386 1:1.2.10-9 base 1.9 M
  18. Installing for dependencies:
  19. libogg i386 2:1.1.2-1 base 16 k
  20. libvorbis i386 1:1.1.0-1 base 185 k
  21. Total download size: 3.3 M
  22. Is this ok [y/N]:

输入y以后,yum就会下载和安装软件包,并继续报告它正在进行的每一步操作。

  1. Downloading Packages:
  2. ...
  3. (5/6): libogg-1.1.2-1.i38 100% |==========| 16 kB 00:00
  4. (6/6): libvorbis-1.1.0-1. 100% |==========| 185 kB 00:00
  5. Running Transaction Test
  6. Running Transaction
  7. Installing: libogg ########## [1/6]
  8. Installing: libvorbis ########## [2/6]
  9. ...
  10. Installed: xmms.i386 1:1.2.10-9
  11. Dependency Installed: gdk-pixbuf.i386
  12. 1:0.22.0-17.el4.3 gtk+.i386 1:1.2.10-33 libogg.i386
  13. 2:1.1.2-1 libvorbis.i386 1:1.1.0-1 mikmod.i386 0:3.1.6-32.EL4

哎呦,总算完了! XMMS终于安装完成,可以使用了。接下来,再看看当你不喜欢XMMS时,如何删除它。