linux系统下rpm包的安装、删除、效验、查询

2020-01-30 11:28:26王冬梅

# 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                      ####################################