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。