5.4 常用软件包管理工具

安装、升级和卸载应用软件是影响用户对操作系统评价的决定性因素之一。对于Linux操作系统,其拥有的简洁而强大的软件包管理机制功不可没。本节介绍几种典型Linux系统中应用软件的管理和使用方法。

5.4.1 system-config-packages

如果安装系统时,有些必要的软件忘记安装了,可以通过system-config-packages来安装。system-config-packages是一个管理本地软件包的工具,更直接一点说system-config-packages是通过系统安装盘来进行安装和移除软件的工具软件。这个工具极为有用,能解决软件包之间的依赖关系。Redhat软件包管理工具应该是redhat-config-packages,用法与system-config-packages是一样的。

1.system-config-packages的安装和使用

首先确认是不已经安装有system-config-packages。

  [root@localhost]# rpm -qa system-config-packages
  system-config-packages-1.2.25-1

如果有上面的提示,就表明已经安装;如果没有安装,可以通过如下的命令来安装。

  [root@localhost]# rpm -ivh system-config-packages*

运行system-config-packages。

  [root@localhost]# system-config-packages –help
  Usage: system-config-packages [--help] [--tree=PATH] [--isodir=PATH]

这里可以看到system-config-packages的帮助。system-config-packages支持iso补装或者删除软件包,所以在运行这个命令时,要指定ISO的存放位置。

  [root@localhost]# system-config-packages --isodir=存放ISO光盘映像的目录

所以根据自己系统的情况,用软件包管理器来添加和删除软件的命令如下。

  [root@localhost]# system-config-packages --isodir=/mnt/wind

2.如何在Linux中打开iso文件

iso文件也是一个打包文件,和rar以及zip文件类似,只是它们的格式不同。除了使用软件包管理器以外,还可以把iso文件挂载到一个目录中,这样也可以用手工方式来安装需要的包。首先要把iso文件加载到一个目录中,命令如下。

  mount -o loop ISO文件名 目的目录

如要把iso文件临时加载到/mnt/temp目录中,首先要建如下目录。

  [root@localhost]# mkdir /mnt/temp

然后加载FC4的第一个iso文件。

  [root@localhost]# mount -o loop /mnt/wind/FC4-i386-disc1.iso /mnt/temp/
  [root@localhost]# ls /mnt/temp/
  autorun GPL README RPM-GPG-KEY RPM-GPG-KEY-fedora-rawhide TRANS.TBL
  eula.txt images README-Accessibility RPM-GPG-KEY-beta RPM-GPG-KEY- fedora- test
  Fedora isolinux RELEASE-NOTES RPM-GPG-KEY-fedora RPM-GPG-KEY-rawhide
  [root@localhost]# mkdir /mnt/hda10/fc40
  [root@localhost]# cp -R /mnt/temp/* /mnt/hda10/fc40/

再加载第二个iso文件。

  [root@localhost]#umount /mnt/temp先卸载第一个iso

加载第二个iso文件和第一个iso文件一样,把所有的文件提出来,放到第一个iso文件提出来的文件所在的同一个目录中。如果遇到提示询问是不是覆盖文件,选择覆盖就行。第三个和第四个ios文件都是如此。通过这个例子,可以知道提取出的四个iso文件内的所有文件都存放在/mnt/hda10/fc40目录中。所以想查看Fedora Core 4.0所有的RPM包,就可以到/mnt/hda10/fc40/Fedora/RPMS目录中查看,所有从四个ios文件提出的文件的都在,如果想安装什么,就用下面的命令安装。

  [root@localhost]#rpm -ivh file.rpm

5.4.2 yum

yum(全称为Yellow dog Updater,Modified)是一个shell前端软件包管理器。该工具基于RPM包管理,能够从指定的服务器自动下载RPM软件包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须烦琐地一次次下载、安装。yum提供了查找、安装、删除某一个或某一组甚至全部软件包的命令,并且可以同时配置多个资源库Repository(/etc/yum.repo.d目录下),全局配置文件(/etc/yum.conf)简洁,使用起来很方便。此外,yum的另一个功能是进行系统中所有软件的升级。如上所述,yum的RPM包来源于源空间,在RHEL中由/etc/yum.repos.d/目录中的.repo文件配置指定,如rhel-debuginfo.repo的内容。

1.yum的常用命令

(1)常用的命令组合

yum check-update:检查可更新包。

yum update:更新所有包。

yum update packagename:更新指定包。

yum install software:安装指定软件(安装过程中手动选择yes or no)。

yum -y install software:安装指定软件(安装过程中所有选择全部选yes)。

yum remove software:删除软件。

yum info packagename:获取软件包信息。

yum provides packagename:列出软件包包含的文件。

(2)yum缓存(/var/cache/yum/)的相关参数

yum clean packages:清除缓存中rpm包文件。

yum clean headers:清除缓存中rpm头文件。

yum clean oldheaders:清除缓存中旧的rpm头文件。

yum clean或#yum clearn all:清除缓存中旧的rpm头文件和包文件(相当于yum clean packages + yum clean oldheaders)。

(3)包列表相关参数

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

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

yum list mozilla*:列出资源库中所有可以以mozilla开头的rpm包。

yum list updates:列出资源库中所有可以更新的rpm包。

yum list installed:列出已经安装的所有的rpm包。

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

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

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

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

yum info updates:列出资源库中所有可以更新的rpm包的信息。

yum info installed:列出已经安装的所有的rpm包的信息。

(5)搜索rpm包

yum search mozilla:搜索匹配特定字符的rpm包。

yum provides realplay:搜索有包含特定文件名的rpm包。

yum基本命令格式及主要参数说明如表5-4所示。

表5-4 yum命令与参数说明

2.yum的配置文件

配置文件用来定义用户期望的yum行为。yum的配置文件分为两部分:main和repository。main部分定义了全局配置选项,整个yum配置文件应该只有一个main,常位于/etc/yum.conf中;repository部分定义了每个源/服务器的具体配置,可以有一到多个,常位于/etc/yum.repo.d目录下的各文件中。

(1)/etc/yum.conf

yum的全局配置文件如图5-11所示。

图5-11 yum全局配置

  pkgpolicy=newest

一共有两个选项,newest和last。如果用户设置了多个repository,而同一软件在不同的repository中同时存在,若选择newest,则yum会安装最新的那个版本;选择last,则yum会将服务器id以字母表排序,选择最后的那个服务器上的软件安装。

  tolerant=1

如果值为1,则yum会忽略任何有关包的错误。举例来说,当执行yum命令安装baz包时,如果baz包已经安装在系统中,则yum会继续重复安装baz,而不会报错,默认值为1。

  exactarch=1

设置为1,则yum只会安装与系统架构匹配的软件包,例如,yum不会将i686的软件包安装在适合i386的系统中,默认值为1。

(2)/etc/yum.repo.d

在/etc/yum.repo.d目录下会发现一些后缀是.repo的文件,这些文件都是官方源的repo文件,如图5-12所示。

图5-12 repo文件

yum的源/服务器配置文件如图5-13所示。

图5-13 yum源/服务器配置

RHEL 6系列默认在安装系统时候就已经安装了yum,如图5-14所示。

图5-14 查看yum安装

如果系统没有安装,可以挂载安装盘手动安装,如图5-15所示。

图5-15 手动安装yum

由于RHEL的yum在线更新是收费的,如果没有注册的话是不能使用的(不能在线安装软件)。在这种情况下,想使用RHEL系统,要么注册,要么换用其他yum源。如果用户使用的计算机安装的是RHEL系统,若每次安装软件需要先挂载本地光盘,过程很烦琐,而且有些软件是老版本的,这种情况下可以借助CentOS的yum源来满足需求。

RHEL配置本地yum源过程如图5-16所示。

图5-16 配置本地yum源

挂载本地光盘时,使用mount后发现无法挂载,提示没有发现介质,如图5-17所示。

图5-17 光盘无法挂载提示

查看Vmware的步骤为,单击鼠标左键选择【VM】/【setting】/【Hardware】/【CD/DVD】,然后在右侧出现的【Device】选项里勾选【Connected】,最后在【Connection】中的【Use ISO image file】里选择【iso】文件,结果如图5-18所示。

图5-18 挂载本地光盘

配置本地yum源的过程如图5-19所示。

图5-19 配置本地yum源

其中,[rhel-local]为库名称,在使用yum安装软件显示仓库源时显示的就是该项,而不是rhel-local.repo中的rhel-local。如果要开启gpg验证,需要将光盘中自带的公钥RPM-GPG-KEY-redhat-legacy-release导入到系统(通过rpm导入系统后的文件放在/etc/pki/rpm-gpg/目录下),然后,通过指定公钥地址来和软件内部的私钥匹配,手动验证过程的命令格式为“rpm -K软件全路径全称”,如图5-20所示。

图5-20 开启gpg验证过程

使用yum时,首先会搜索repodata文件,所以指定yum源路径时指定到repodata所在目录即可。若只有RPM包,可通过createrepo命令将包含RPM的文件夹转换为yum仓库,即生成repodata文件,该命令默认为未安装。baseurl中指定本地文件路径时使用的“file://”实际为“file://+目录路径”;enabled可不指定,默认为ebabled=1,即启用该库,若为0则不启用,如图5-21所示。

图5-21 yum的使用

3.yum的图形工具

yum在线升级更新软件包是一个工具软件,在安装系统时,一般都是默认安装。yum是一个命令行式的工具,如果用户不习惯命令行式的yum,可以用yumex和kyum。yumex和kyum并不是独立于yum的,而是yum的图形前端,也就是说,在安装和使用yumex和kyum的同时,都是以yum的安装和配置为基础,在用yumex或kyum时,必须先安装配置yum。

(1)yumex的安装和使用

首先确认系统中是不是安装有yumex。

  [root@localhost]# rpm -q yumex
  yumex-0.42-3.0.fc4

如果没有类似的输出,则使用下面的命令安装。前提是已经完成了前述yum的配置。

  [root@localhost]# yum install yumex

yumex的调用命令如下。

  [root@localhost]# yumex

yumex的操作很简单,会使用鼠标就会使用yumex。

(2)kyum的安装和使用

安装kyum的命令如下。

  [root@localhost]# yum install kyum

调用kyum的命令如下。

  [root@localhost]# kyum

yumex和kyum只需选择一个就行,没有必要两个都安装,可以尝试一下再做选择。

更多有关yum的信息,可以查阅http://fedoraproject.org/wiki/Tools/yum

5.4.3 APT

APT(全称为Advanced Packaging Tools)。与yum对应,它最早被设计成DPKG的前端软件,现在通过apt-rpm也支持rpm管理。APT的主要包管理工具为APT-GET,通过此工具可满足和上述yum相似的功能要求。APT的软件源定义来自/etc/apt/sources.list文件。

  # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
  # newer versions of the distribution.
  deb http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted
  deb-src http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted

每次手动修改上述文件后,需要使用sudo apt-get update来更新系统的源,使新的源数据能被当前系统识别。APT的配置文件位于/etc/apt/apt.conf.d,其中的多个配置文件依功能分类。

APT常用命令具体如下。

更新源索引:

  $ sudo apt-get update

安装指定软件:

  $ sudo apt-get install package-name

下载指定软件的源文件:

  $ sudo apt-get source package-name

将系统中所有软件升级到最新版本:

  $ sudo apt-get upgrade

将操作系统连同所有软件升级到最新版本:

  $ sudo apt-get dist-upgrade

卸载指定软件:

  $ sudo apt-get remove package-name

更多有关APT的信息,可查阅http://www.debian.org/doc/manuals/apt-howto/index.en.html