rpm 包的管理

介绍

rpm 用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。
Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。

rpm 包的简单查询指令

查询已安装的 rpm 列表 rpm –qa|grep xx
举例: 看看当前系统,是否安装了 firefox
指 令 : rpm -qa | grep firefox

rpm 包名基本格式

一个 rpm 包名:firefox-60.2.2-1.el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统: el7.centos.x86_64
表示 centos7.x 的 64 位系统如果是 i686、i386 表示 32 位系统,noarch 表示通用

rpm 包的其它查询指令

rpm -qa :查询所安装的所有 rpm 软件包
案例:rpm -qa | more
案例:rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包是否安装
案例:rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
案例: rpm -qi firefox
rpm -ql 软件包名 :查询软件包中的文件
案例: rpm -ql firefox
rpm -qf 文件全路径名 查询文件所属的软件包
案例:rpm -qf /etc/passwd
案例:rpm -qf /root/install.log

卸载rpm 包

基本语法

  1. rpm -e RPM包的名称 //erase擦除
  2. #举例 删除 firefox 软件包
  3. rpm -e firefox

细节讨论

(1)如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
(2)如果我们就是要删除 foo 这个 rpm 包,可以增加参数 —nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如:$ rpm -e —nodeps foo

安装rpm包

基本语法

  1. rpm -ivh RPM 包全路径名称
  2. # 参数说明
  3. i=install 安装
  4. v=verbose 提示
  5. h=hash 进度条

应用实例

演示卸载和安装 firefox 浏览器

卸载:rpm -e firefox
安装:rpm -ivh firefox

yum

介绍

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

yum 的基本指令

查询 yum 服务器是否有需要安装的软件
举例:yum list|grep xxx
安装指定的yum 包
举例 :yum install xxx

yum 应用实例

使用 yum 的方式来安装 firefox

卸载:rpm -e firefox
查询:yum list | grep firefox
下载安装:yum install firefox

  1. [root@localhost 下载]# yum list | grep firefox
  2. Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
  3. firefox.i686 91.3.0-1.el7.centos updates
  4. firefox.x86_64 91.3.0-1.el7.centos updates
  5. [root@localhost 下载]# yum install firefox.x86_64
  6. 已加载插件:fastestmirror, langpacks
  7. Loading mirror speeds from cached hostfile
  8. * base: mirrors.dgut.edu.cn
  9. * extras: mirrors.bfsu.edu.cn
  10. * updates: mirrors.163.com
  11. base | 3.6 kB 00:00:00
  12. extras | 2.9 kB 00:00:00
  13. updates | 2.9 kB 00:00:00
  14. updates/7/x86_64/primary_db | 13 MB 00:00:06
  15. 正在解决依赖关系
  16. --> 正在检查事务
  17. ---> 软件包 firefox.x86_64.0.91.5.0-1.el7.centos 将被 安装
  18. --> 正在处理依赖关系 nss >= 3.67,它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  19. --> 正在处理依赖关系 nspr >= 4.32,它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  20. --> 正在处理依赖关系 libnss3.so(NSS_3.58)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  21. --> 正在处理依赖关系 libnss3.so(NSS_3.55)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  22. --> 正在处理依赖关系 libnss3.so(NSS_3.52)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  23. --> 正在处理依赖关系 libnss3.so(NSS_3.47)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  24. --> 正在处理依赖关系 libnss3.so(NSS_3.45)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  25. --> 正在处理依赖关系 libnss3.so(NSS_3.44)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
  26. --> 正在检查事务
  27. ---> 软件包 nspr.x86_64.0.4.19.0-1.el7_5 将被 升级
  28. ---> 软件包 nspr.x86_64.0.4.32.0-1.el7_9 将被 更新
  29. ---> 软件包 nss.x86_64.0.3.36.0-7.el7_5 将被 升级
  30. --> 正在处理依赖关系 nss = 3.36.0-7.el7_5,它被软件包 nss-sysinit-3.36.0-7.el7_5.x86_64 需要
  31. --> 正在处理依赖关系 nss(x86-64) = 3.36.0-7.el7_5,它被软件包 nss-tools-3.36.0-7.el7_5.x86_64 需要
  32. ---> 软件包 nss.x86_64.0.3.67.0-4.el7_9 将被 更新
  33. --> 正在处理依赖关系 nss-util >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
  34. --> 正在处理依赖关系 nss-softokn(x86-64) >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
  35. --> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.59)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
  36. --> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.39)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
  37. --> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.38)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
  38. --> 正在检查事务
  39. ---> 软件包 nss-softokn.x86_64.0.3.36.0-5.el7_5 将被 升级
  40. ---> 软件包 nss-softokn.x86_64.0.3.67.0-3.el7_9 将被 更新
  41. --> 正在处理依赖关系 nss-softokn-freebl(x86-64) >= 3.67.0-3.el7_9,它被软件包 nss-softokn-3.67.0-3.el7_9.x86_64 需要
  42. ---> 软件包 nss-sysinit.x86_64.0.3.36.0-7.el7_5 将被 升级
  43. ---> 软件包 nss-sysinit.x86_64.0.3.67.0-4.el7_9 将被 更新
  44. ---> 软件包 nss-tools.x86_64.0.3.36.0-7.el7_5 将被 升级
  45. ---> 软件包 nss-tools.x86_64.0.3.67.0-4.el7_9 将被 更新
  46. ---> 软件包 nss-util.x86_64.0.3.36.0-1.el7_5 将被 升级
  47. ---> 软件包 nss-util.x86_64.0.3.67.0-1.el7_9 将被 更新
  48. --> 正在检查事务
  49. ---> 软件包 nss-softokn-freebl.x86_64.0.3.36.0-5.el7_5 将被 升级
  50. ---> 软件包 nss-softokn-freebl.x86_64.0.3.67.0-3.el7_9 将被 更新
  51. --> 解决依赖关系完成
  52. 依赖关系解决
  53. =======================================================================================================================
  54. Package 架构 版本 大小
  55. =======================================================================================================================
  56. 正在安装:
  57. firefox x86_64 91.5.0-1.el7.centos updates 106 M
  58. 为依赖而更新:
  59. nspr x86_64 4.32.0-1.el7_9 updates 127 k
  60. nss x86_64 3.67.0-4.el7_9 updates 882 k
  61. nss-softokn x86_64 3.67.0-3.el7_9 updates 358 k
  62. nss-softokn-freebl x86_64 3.67.0-3.el7_9 updates 337 k
  63. nss-sysinit x86_64 3.67.0-4.el7_9 updates 66 k
  64. nss-tools x86_64 3.67.0-4.el7_9 updates 549 k
  65. nss-util x86_64 3.67.0-1.el7_9 updates 79 k
  66. 事务概要
  67. =======================================================================================================================
  68. 安装 1 软件包
  69. 升级 ( 7 依赖软件包)
  70. 总计:109 M
  71. 总下载量:108 M
  72. Is this ok [y/d/N]: y
  73. Downloading packages:
  74. No Presto metadata available for updates
  75. 警告:/var/cache/yum/x86_64/7/updates/packages/nss-sysinit-3.67.0-4.el7_9.x86_64.rpm: V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
  76. nss-sysinit-3.67.0-4.el7_9.x86_64.rpm 的公钥尚未安装
  77. (1/4): nss-sysinit-3.67.0-4.el7_9.x86_64.rpm | 66 kB 00:00:00
  78. (2/4): nss-3.67.0-4.el7_9.x86_64.rpm | 882 kB 00:00:00
  79. (3/4): nss-tools-3.67.0-4.el7_9.x86_64.rpm | 549 kB 00:00:01
  80. (4/4): firefox-91.5.0-1.el7.centos.x86_64.rpm | 106 MB 00:02:31
  81. -----------------------------------------------------------------------------------------------------------------------
  82. 总计 728 kB/s | 108 MB 00:02:31
  83. file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
  84. 导入 GPG key 0xF4A80EB5:
  85. 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
  86. 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
  87. 软件包 : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
  88. 来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  89. 是否继续?[y/N]:y
  90. Running transaction check
  91. Running transaction test
  92. Transaction test succeeded
  93. Running transaction
  94. 警告:RPM 数据库已被非 yum 程序修改。
  95. 正在更新 : nspr-4.32.0-1.el7_9.x86_64 1/15
  96. 正在更新 : nss-util-3.67.0-1.el7_9.x86_64 2/15
  97. 正在更新 : nss-softokn-freebl-3.67.0-3.el7_9.x86_64 3/15
  98. 正在更新 : nss-softokn-3.67.0-3.el7_9.x86_64 4/15
  99. 正在更新 : nss-sysinit-3.67.0-4.el7_9.x86_64 5/15
  100. 正在更新 : nss-3.67.0-4.el7_9.x86_64 6/15
  101. 正在安装 : firefox-91.5.0-1.el7.centos.x86_64 7/15
  102. 正在更新 : nss-tools-3.67.0-4.el7_9.x86_64 8/15
  103. 清理 : nss-tools-3.36.0-7.el7_5.x86_64 9/15
  104. 清理 : nss-3.36.0-7.el7_5.x86_64 10/15
  105. 清理 : nss-sysinit-3.36.0-7.el7_5.x86_64 11/15
  106. 清理 : nss-softokn-3.36.0-5.el7_5.x86_64 12/15
  107. 清理 : nss-softokn-freebl-3.36.0-5.el7_5.x86_64 13/15
  108. 清理 : nss-util-3.36.0-1.el7_5.x86_64 14/15
  109. 清理 : nspr-4.19.0-1.el7_5.x86_64 15/15
  110. 验证中 : nss-softokn-freebl-3.67.0-3.el7_9.x86_64 1/15
  111. 验证中 : nss-sysinit-3.67.0-4.el7_9.x86_64 2/15
  112. 验证中 : firefox-91.5.0-1.el7.centos.x86_64 3/15
  113. 验证中 : nss-softokn-3.67.0-3.el7_9.x86_64 4/15
  114. 验证中 : nss-3.67.0-4.el7_9.x86_64 5/15
  115. 验证中 : nss-util-3.67.0-1.el7_9.x86_64 6/15
  116. 验证中 : nspr-4.32.0-1.el7_9.x86_64 7/15
  117. 验证中 : nss-tools-3.67.0-4.el7_9.x86_64 8/15
  118. 验证中 : nss-sysinit-3.36.0-7.el7_5.x86_64 9/15
  119. 验证中 : nss-util-3.36.0-1.el7_5.x86_64 10/15
  120. 验证中 : nspr-4.19.0-1.el7_5.x86_64 11/15
  121. 验证中 : nss-tools-3.36.0-7.el7_5.x86_64 12/15
  122. 验证中 : nss-3.36.0-7.el7_5.x86_64 13/15
  123. 验证中 : nss-softokn-3.36.0-5.el7_5.x86_64 14/15
  124. 验证中 : nss-softokn-freebl-3.36.0-5.el7_5.x86_64 15/15
  125. 已安装:
  126. firefox.x86_64 0:91.5.0-1.el7.centos
  127. 作为依赖被升级:
  128. nspr.x86_64 0:4.32.0-1.el7_9 nss.x86_64 0:3.67.0-4.el7_9 nss-softokn.x86_64 0:3.67.0-3.el7_9
  129. nss-softokn-freebl.x86_64 0:3.67.0-3.el7_9 nss-sysinit.x86_64 0:3.67.0-4.el7_9 nss-tools.x86_64 0:3.67.0-4.el7_9
  130. nss-util.x86_64 0:3.67.0-1.el7_9
  131. 完毕!
  132. [root@localhost 下载]# rpm -q firefox
  133. firefox-91.5.0-1.el7.centos.x86_64