RPM 和增补程序

为了确保系统的操作安全性,必须时常在系统中安装更新包。以前,包中的 bug 只能通过替换整个包来解决。这样,对只有小文件中存在错误的较大的包进行替换时就很容易产生大量数据。不过 SUSE RPM 提供了一项功能,支持在包中安装增补程序。

以下使用 pine 的示例中对最重要的考虑事项进行了描述:

增补程序 RPM 是否适合我的系统?

要对此进行检查,请先查询包的已安装版本。对于 pine,可以通过以下命令完成:

rpm -q pine
pine-4.44-188

然后检查增补程序 RPM 是否适合此版本的 pine:

rpm -qp --basedon pine-4.44-224.i586.patch.rpm 
pine = 4.44-188
pine = 4.44-195
pine = 4.44-207

此增补程序适用于 pine 的三个不同的版本。还列出示例中已安装的版本,从而可以安装增补程序。

增补程序将替换哪些文件?

在增补程序 RPM 中可以方便地找到受增补程序影响的文件。rpm 参数 -P 允许选择特殊的增补程序功能。使用以下命令显示文件列表:

rpm -qpPl pine-4.44-224.i586.patch.rpm
/etc/pine.conf
/etc/pine.conf.fixed
/usr/bin/pine

或者,如果已安装增补程序,则使用以下命令:

rpm -qPl pine
/etc/pine.conf
/etc/pine.conf.fixed
/usr/bin/pine
如何在系统中安装增补程序 RPM?

增补程序 RPM 的使用与普通 RPM 相同。唯一的区别就是必须已安装合适的 RPM。

系统中已安装了哪些增补程序,用于哪些包版本?

使用命令 rpm -qPa 可以显示系统中已安装的所有增补程序的列表。如果新系统中只安装了一个增补程序(如本示例中),则列表如下:

rpm -qPa
pine-4.44-224

如果以后要了解最初安装了哪个包版本,则可以在 RPM 数据库中获得此信息。对于 pine,可以通过以下命令显示此信息:

rpm -q --basedon pine
pine = 4.44-188

rpmrpmbuild 的手册页中提供了详细信息(包括有关 RPM 的增补程序功能的信息)。