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 包
基本语法
rpm -e RPM包的名称 //erase擦除
#举例 删除 firefox 软件包
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包
基本语法
rpm -ivh RPM 包全路径名称
# 参数说明
i=install 安装
v=verbose 提示
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
[root@localhost 下载]# yum list | grep firefox
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
firefox.i686 91.3.0-1.el7.centos updates
firefox.x86_64 91.3.0-1.el7.centos updates
[root@localhost 下载]# yum install firefox.x86_64
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.dgut.edu.cn
* extras: mirrors.bfsu.edu.cn
* updates: mirrors.163.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 13 MB 00:00:06
正在解决依赖关系
--> 正在检查事务
---> 软件包 firefox.x86_64.0.91.5.0-1.el7.centos 将被 安装
--> 正在处理依赖关系 nss >= 3.67,它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 nspr >= 4.32,它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.58)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.55)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.52)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.47)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.45)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.44)(64bit),它被软件包 firefox-91.5.0-1.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 nspr.x86_64.0.4.19.0-1.el7_5 将被 升级
---> 软件包 nspr.x86_64.0.4.32.0-1.el7_9 将被 更新
---> 软件包 nss.x86_64.0.3.36.0-7.el7_5 将被 升级
--> 正在处理依赖关系 nss = 3.36.0-7.el7_5,它被软件包 nss-sysinit-3.36.0-7.el7_5.x86_64 需要
--> 正在处理依赖关系 nss(x86-64) = 3.36.0-7.el7_5,它被软件包 nss-tools-3.36.0-7.el7_5.x86_64 需要
---> 软件包 nss.x86_64.0.3.67.0-4.el7_9 将被 更新
--> 正在处理依赖关系 nss-util >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 nss-softokn(x86-64) >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.59)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.39)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.38)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 nss-softokn.x86_64.0.3.36.0-5.el7_5 将被 升级
---> 软件包 nss-softokn.x86_64.0.3.67.0-3.el7_9 将被 更新
--> 正在处理依赖关系 nss-softokn-freebl(x86-64) >= 3.67.0-3.el7_9,它被软件包 nss-softokn-3.67.0-3.el7_9.x86_64 需要
---> 软件包 nss-sysinit.x86_64.0.3.36.0-7.el7_5 将被 升级
---> 软件包 nss-sysinit.x86_64.0.3.67.0-4.el7_9 将被 更新
---> 软件包 nss-tools.x86_64.0.3.36.0-7.el7_5 将被 升级
---> 软件包 nss-tools.x86_64.0.3.67.0-4.el7_9 将被 更新
---> 软件包 nss-util.x86_64.0.3.36.0-1.el7_5 将被 升级
---> 软件包 nss-util.x86_64.0.3.67.0-1.el7_9 将被 更新
--> 正在检查事务
---> 软件包 nss-softokn-freebl.x86_64.0.3.36.0-5.el7_5 将被 升级
---> 软件包 nss-softokn-freebl.x86_64.0.3.67.0-3.el7_9 将被 更新
--> 解决依赖关系完成
依赖关系解决
=======================================================================================================================
Package 架构 版本 源 大小
=======================================================================================================================
正在安装:
firefox x86_64 91.5.0-1.el7.centos updates 106 M
为依赖而更新:
nspr x86_64 4.32.0-1.el7_9 updates 127 k
nss x86_64 3.67.0-4.el7_9 updates 882 k
nss-softokn x86_64 3.67.0-3.el7_9 updates 358 k
nss-softokn-freebl x86_64 3.67.0-3.el7_9 updates 337 k
nss-sysinit x86_64 3.67.0-4.el7_9 updates 66 k
nss-tools x86_64 3.67.0-4.el7_9 updates 549 k
nss-util x86_64 3.67.0-1.el7_9 updates 79 k
事务概要
=======================================================================================================================
安装 1 软件包
升级 ( 7 依赖软件包)
总计:109 M
总下载量:108 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for updates
警告:/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
nss-sysinit-3.67.0-4.el7_9.x86_64.rpm 的公钥尚未安装
(1/4): nss-sysinit-3.67.0-4.el7_9.x86_64.rpm | 66 kB 00:00:00
(2/4): nss-3.67.0-4.el7_9.x86_64.rpm | 882 kB 00:00:00
(3/4): nss-tools-3.67.0-4.el7_9.x86_64.rpm | 549 kB 00:00:01
(4/4): firefox-91.5.0-1.el7.centos.x86_64.rpm | 106 MB 00:02:31
-----------------------------------------------------------------------------------------------------------------------
总计 728 kB/s | 108 MB 00:02:31
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
是否继续?[y/N]:y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
正在更新 : nspr-4.32.0-1.el7_9.x86_64 1/15
正在更新 : nss-util-3.67.0-1.el7_9.x86_64 2/15
正在更新 : nss-softokn-freebl-3.67.0-3.el7_9.x86_64 3/15
正在更新 : nss-softokn-3.67.0-3.el7_9.x86_64 4/15
正在更新 : nss-sysinit-3.67.0-4.el7_9.x86_64 5/15
正在更新 : nss-3.67.0-4.el7_9.x86_64 6/15
正在安装 : firefox-91.5.0-1.el7.centos.x86_64 7/15
正在更新 : nss-tools-3.67.0-4.el7_9.x86_64 8/15
清理 : nss-tools-3.36.0-7.el7_5.x86_64 9/15
清理 : nss-3.36.0-7.el7_5.x86_64 10/15
清理 : nss-sysinit-3.36.0-7.el7_5.x86_64 11/15
清理 : nss-softokn-3.36.0-5.el7_5.x86_64 12/15
清理 : nss-softokn-freebl-3.36.0-5.el7_5.x86_64 13/15
清理 : nss-util-3.36.0-1.el7_5.x86_64 14/15
清理 : nspr-4.19.0-1.el7_5.x86_64 15/15
验证中 : nss-softokn-freebl-3.67.0-3.el7_9.x86_64 1/15
验证中 : nss-sysinit-3.67.0-4.el7_9.x86_64 2/15
验证中 : firefox-91.5.0-1.el7.centos.x86_64 3/15
验证中 : nss-softokn-3.67.0-3.el7_9.x86_64 4/15
验证中 : nss-3.67.0-4.el7_9.x86_64 5/15
验证中 : nss-util-3.67.0-1.el7_9.x86_64 6/15
验证中 : nspr-4.32.0-1.el7_9.x86_64 7/15
验证中 : nss-tools-3.67.0-4.el7_9.x86_64 8/15
验证中 : nss-sysinit-3.36.0-7.el7_5.x86_64 9/15
验证中 : nss-util-3.36.0-1.el7_5.x86_64 10/15
验证中 : nspr-4.19.0-1.el7_5.x86_64 11/15
验证中 : nss-tools-3.36.0-7.el7_5.x86_64 12/15
验证中 : nss-3.36.0-7.el7_5.x86_64 13/15
验证中 : nss-softokn-3.36.0-5.el7_5.x86_64 14/15
验证中 : nss-softokn-freebl-3.36.0-5.el7_5.x86_64 15/15
已安装:
firefox.x86_64 0:91.5.0-1.el7.centos
作为依赖被升级:
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
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
nss-util.x86_64 0:3.67.0-1.el7_9
完毕!
[root@localhost 下载]# rpm -q firefox
firefox-91.5.0-1.el7.centos.x86_64