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

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

error: foo-1.0-1.i386.rpm cannot be installed
#
        
 

如果仍要安装该包, 可以在命令行中使用 --replacepkgs 选项, 这样 RPM 将忽略该错误信息:

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
foo                      ####################################
#
          
 

文件冲突
如果要安装的软件包中有一个文件已在安装其它包时被安装,会显示以下信息:

# rpm -ivh foo-1.0-1.i386.rpm
foo          /usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed
#
      
 

要想让RPM 忽略该错误信息, 请使用 --replacefiles 命令行选项:

# rpm -ivh --replacefiles foo-1.0-1.i386.rpm
foo                      ####################################
#
      
 

未解决依赖关系
一个 RPM 包可能会 "依赖" 其它软件包, 也就是说要求在安装了特定的软件包之后才能安装该软件包。 如果在安装这个软件包时未解决这种存在的依赖关系, 会看到:

# 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