作者:张恒
Red Hat Linux 是使用较多的发行版之一。对 Red Hat Linux,安装、更新或卸载软件就会用到 RPM。RPM 是 Red Hat Linux 的一个实用工具,可以自动完成软件的安装,并且能自由使用而不被 Red Hat 的发布版本所限制。使用 RPM 工具,在创建该安装文件时会强制重新建立该应用程序。这样确保所有的资源都存在,并在正确的位置进行重新编译。
RPM 有五种基本的操作 (不包括创建软件包),如安装、卸载、更新(或称为升级)、查询和软件包认证。
安装
如果要进行安装,二进制的 .rpm 文件首先需要被复制到机器上,然后使用以下命令进行安装:
#rpm -i zsh-3.0.5-10.i386.rpm
如果想要一些安装进程的反馈信息,也可以键入下面命令:
#rpm -ivh zsh-3.0.5-10.i386.rpm
因为命令中使用了 vh 选项,RPM 会显示一个进程栏,为 # 符号的增加行。当 # 符号达到了屏幕的边缘并且命令提示符返回时,软件包就安装了。
RPM 软件包通常具有类似 zsh-3.0.5-10.i386.rpm 的文件名。其中包括软件包的名称 (zsh)、版本号 (3.0.5)、发行号 (10) 和硬件平台 (i386)。
RPM 安装软件包之前通常会检测数据库,不安装已经存在的软件包。如果仍旧要安装该软件包,可使用 -- replacepkgs 选项,RPM 将忽略该错误。
在安装时可能出现的其它错误是文件冲突和未解决的相关性问题。如果另一个软件包已经安装了用户希望安装的文件,那么就会产生一个 “文件冲突” 的错误。如果想忽略该错误进行强制安装,可以使用 -- replacefiles 选项。当一个软件包依赖于其它实用工具或应用程序时,那么就会产生一个未解决的相关性错误,可以使用 -- nodeps 选项忽略该错误。但这样做是不明智的,因为安装后的软件包未必能正常运行。
卸载
如果想从系统中删除 zsh 软件包,那么使用以下命令即可:
#rpm -e zsh
注意,需要实用工具的名称。如果一个已安装的程序包依赖于正在被删除的程序包,则该操作失败,并且产生一个错误信息。当然也可以通过指定 -nodeps 选项强行删除,但是这样将使其它的程序包不能正常运行。
升级
将软件升级就需要将所有旧的程序包版本删除,然后安装新的程序包。该操作可以使用下面命令来完成:
#rpm -Uvh zsh-3.0.5-10.i386.rpm
由于RPM升级软件包时使用数据库,所以它知道何时配制文件不再兼容。如果没有制作备份,它就先不删除这些文件,而且在升级开始时通知用户保存所有的文件及其文件名。通过使用--oldpackage选项,可以用一个较新版本的软件包替换一个较老版本。
查询
保存所有已安装软件包的数据库可以了解那些软件包的信息。可以用下述命令进行简单的查询:
#rpm -q zsh
显示软件包的名称:
zsh-3.0.5-10
添加到查询命令中的其它选项有:
-a 显示所有已安装的软件包。 -f 显示拥有给定文件 的软件包 。 -p 给出与用 -q 选项相同的输出结果,但是要使用完整的 .rpm 文件名。 -I 显示诸如名称、描述、发行情况等的软件包信息。 -l 列出软件包中的文件。 -s 显示软件包中作为文档标记的文件。 -c 列出配置文件标记的文件。 -v 与显示文件列表的选项一起使用,将显示 ls-l 形式的信息。
检验
检验是 RPM 另一个很有用的特性。软件包安装可能会遇到配置文件被修改或文件偶然被删除,该程序可以快速跟踪任何后续故障,将当前的安装文件与原始的二进制的 .rpm 相比较,从而发现两者之间的差异。所检验的有大小、MD5 检验和、权限、类型、所有者及所安装的文件和目录的组。如果没有发现任何差异,就不会显示任何信息。检验软件包使用的命令如下:
#rpm -V zsh
如果已确定安装后引起了软件包间不一致,可以通过使用 -replacepkgs 选项重新安装该软件包。