电脑技术学习

RedHat Linux操作系统软件包的管理

dn001

  <3>软件包之间的相关性

  有的时候,一个软件包的作用要基于另外一个软件包,如果安装该软件包时候没有安装需要的另外一个软件包,就会有错误信息:

  #rpm -ivh rhviewer-3.10a-13.i386.rpm

  failed dependencies: rhviewer is needed by rhpainter-2.24-20

  此时,建议先安装这个需要的软件包。不过,如果你愿意尝试一下是否不安装这个需要的软件包是否也能够正常使用你真正要安装的软件的话,可以加上--nodeps参数:

  #rpm -ivh --nodps rhviewer-3.10a-13.i386.rpm

  2. 删除

  #rpm -e rhviewer

  注意:这里接的不是安装时候软件包的名字rhviewer-3.10a-13.i386.rpm,而只要用rhviewer或者rhviewer-3.10a-13就可以了。建议的方式是先用RPM查询出你要删除的软件,然后用该命令删除。

  这里最常出现的错误提示就是,当你要删除的软件包被其他软件包关联时候,就会出现错误提示:

  #rpm -e rhviewer

  removing these packages would break dependencies: rhviewer is neededby rhpainter-2.24-20

  3. 升级

  更新软件包的版本到最新版本,也是经常用到的:

  #rpm -Uvh rhviewer-3.10a-13.i386.rpm

  升级软件的模式其实是先删除旧软件包,然后再安装新软件包。而且,你还可以选择用这种升级的模式来安装软件包,因为,没有旧软件包的情况下,此升级方式仍然可正常运行。

  如果系统中有旧版本存在,你就可以看到以下信息:

  #rpm -Uvh rhviewer-3.10a-13.i386.rpm

  saving /etc/rhviewer.conf as /etc/rhviewer.conf.rpmsave

  如果,你要降低当前版本到更老的版本,一个办法就是删除该版本,然后再重新安装旧的版本,也可以用--oldpackage参数来进行“升级:

  #rpm -Uvh --oldpackage rhviewer-3.10a-13.i386.rpm

  补充说明:

  还有一种升级的安装方式:更新。

  #rpm -Fvh rhviewer-3.10a-13.i386.rpm

  更新和普通升级的方式是,当系统中没有旧版本时,普通的升级安装仍然会安装该软件,而更新的模式就不会安装。

  4. 查询

  #rpm -q rhviewer

  rhviewer-3.10a-13

  如果要查询的软件忘记了名字,可以用#rpm -qa来显示出所有的已经安装的软件。

  更详细的软件信息,可以用#rpm -qi来查询。

  5. 验证

  #rpm -V rhviewer

  说明:验证rhviewer软件包的正确性

  #rpm -Vf /bin/vi

  说明:验证包含/bin/vi文件的软件包

  #rpm -Va

  说明:验证所有软件包

  #rpm -Vp rhviewer-3.10a-13.i386.rpm

  说明:使用.rpm文件来验证软件包的正确性

  验证模式会比较原始软件包信息及安装在系统中的软件包文件信息,包括每个文件的大小、MD5 checksum、权限、类型、拥有者及所属的文件组。在验证后若没有任何输出,表示软件包正常。如果有不一致的地方,RPM将会显示出它们的错误码。下面列出一些可能的错误码:

  5: MD5校验码不匹配

  S: 文件大小不匹配

  L: 符号连接错误

  T: 文件修改时间不匹配

  D: 设备属性不匹配

  U: 用户不匹配

  G: 文件组不匹配

  M: 模式不匹配,包括权限和文件类型

标签: linux