# rpm -ivh bar-1.0-1.i386.rpm
failed dependencies:
foo is needed by bar-1.0-1
#
只有先安装完所依赖的软件包,才能解决这个问题。 如果想强制安装 (这不是个好办法,因为安装后的软件包未必能正常运行), 可以使用 --nodeps 命令行选项。
3.2.2 卸载
卸载软件包就象安装软件包时一样简单:
# rpm -e foo
#
请注意
注意这里使用软件包的 名字 "foo" , 而不是原始软件包的 文件名 "foo-1.0-1.i386.rpm"。卸载软件包时, 需要用原始包的实际文件名替换 foo 包名。
在卸载某个软件包时,可能会发生依赖关系错误,这说明其它包与此包之间有安装依赖关系。例如:
# rpm -e foo
removing these packages would break dependencies:
foo is needed by bar-1.0-1
#
要使 RPM 在卸载此包时忽略该错误 (这不是个好办法,因为卸载后,与它有依赖关系的软件包未必能正常运行), 使用 --nodeps 命令行选项。
3.2.3 升级
升级软件包和安装软件包十分类似。
# rpm -Uvh foo-2.0-1.i386.rpm
foo ####################################
#
RPM 将自动卸载已安装的老版本的 foo 软件包,用户无法看到有关信息。事实上用户可能总是使用 -U 来安装软件包, 因为即便以往未安装过该软件包,也能正常运行。
因为 RPM 执行智能化的软件包升级,自动处理配置文件,会显示如下信息:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
这表示用户对配置文件的修改,不一定能 "向上兼容" 该软件包中的配置文件。 因此,RPM 会备份原始的文件,再安装新文件。用户应当尽快解决这两个配置文件的不同之处,以便系统能持续正常运行。
因为升级其实就是软件包的卸载与安装的综合,也可能会遇见那些操作中所可能发生的错误。 再有就是: 在使用 旧 版本的 RPM 软件包来升级新版本的软件时,会产生以下信息:
# rpm -Uvh foo-1.0-1.i386.rpm
foo package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
要使用 RPM 强行 "升级" , 请使用 --oldpackage 命令行参数:
# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
foo ####################################










