Linux命令之rpm命令

一、命令介绍

  rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎,可以算是公认的行业标准了。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
  RPM主要功能

  • 安装、卸载、升级和管理软件
  • 组件查询功能
  • 验证功能
  • 软件包GPG和MD5数字签名的导入、验证和发布
  • 软件包依赖处理
  • 选择安装
  • 网络远程安装功能

二、命令使用示例

1、查询是否安装某软件包

使用rpm -qa查询安装的软件包

[root@test1 opt]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64

2、获取rpm包全名

此方法要求查询的名称是正确的,即名称后只缺版本号信息

[root@test1 gmond]# rpm -q ganglia
ganglia-3.7.2-33.el7.x86_64
[root@test1 gmond]# rpm -q ganglia-gmetad
ganglia-gmetad-3.7.2-33.el7.x86_64

3、查询rpm包安装位置

[root@test1 gmond]# rpm -ql ganglia-gmetad
/etc/ganglia
/etc/ganglia/gmetad.conf
/usr/lib/systemd/system/gmetad.service
/usr/sbin/gmetad
/usr/share/man/man1/gmetad.1.gz
/usr/share/man/man1/gmetad.py.1.gz
/var/lib/ganglia
/var/lib/ganglia/rrds

4、查询命令所属rpm包的全名

使用rpm -qf `which 命令名称`查询命令所属软件包的全名

[root@test1 gmond]# rpm -qf `which chronyd`
chrony-3.4-1.el7.x86_64
rpm -qif `which 命令名称` #返回软件包的有关信息
rpm -qlf `which 命令名称` #返回软件包的文件列表

5、正常安装rpm包

使用rpm -ivh正常安装软件包

[root@test1 gmond]# rpm -ivh apr-1.4.8-7.el7.x86_64.rpm
Preparing… ################################# [100%]
package apr-1.4.8-7.el7.x86_64 is already installed

5、忽略rpm包的依赖直接安装

使用rpm -ivh --nodeps忽略依赖包安装

[root@test1 gmond]# rpm -ivh ganglia-gmond-3.7.2-33.el7.x86_64.rpm
warning: ganglia-gmond-3.7.2-33.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
error: Failed dependencies:
ganglia = 3.7.2-33.el7 is needed by ganglia-gmond-3.7.2-33.el7.x86_64
libganglia.so.0()(64bit) is needed by ganglia-gmond-3.7.2-33.el7.x86_64
[root@test1 gmond]# rpm -ivh --nodeps ganglia-gmond-3.7.2-33.el7.x86_64.rpm
warning: ganglia-gmond-3.7.2-33.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:ganglia-gmond-3.7.2-33.el7 ################################# [100%]

6、忽略rpm包依赖和报错强制安装

使用rpm -ivh --nodeps --force强制安装
此方法不建议使用,一般报错原因是强制安装的包与现有其他rpm包有冲突,强制安装可能会导致现有的程序出错。

7、升级rpm包

[root@test1 gmond]# rpm -Uvh ganglia-3.7.2-33.el7.x86_64.rpm
warning: ganglia-3.7.2-33.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:ganglia-3.7.2-33.el7 ################################# [100%]

8、正常卸载rpm包

使用rpm -e正常卸载软件包

[root@test1 gmond]# rpm -qa |grep gmond
ganglia-gmond-3.7.2-33.el7.x86_64
[root@test1 gmond]# rpm -e ganglia-gmond-3.7.2-33.el7.x86_64
[root@test1 gmond]# rpm -qa |grep ganglia-gmond

9、强制卸载rpm包

使用rpm -e --nodeps强力卸载rpm包

[root@test1 ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

三、命令参数说明

-a  查询所有套件。
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。
-c  只列出组态配置文件,本参数需配合"-l"参数使用。
-d  只列出文本文件,本参数需配合"-l"参数使用。
-e<套件档>或–erase<套件档>  删除指定的套件。
-f<文件>+  查询拥有指定文件的套件。
-h或–hash  套件安装时列出标记。
-i  显示套件的相关信息。
-i<套件档>或–install<套件档>  安装指定的套件档。
-l  显示套件的文件列表。
-p<套件档>+  查询指定的RPM套件档。
-q  使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
-R  显示套件的关联性信息。
-s  显示文件状态,本参数需配合"-l"参数使用。
-U<套件档>或–upgrade<套件档> 升级指定的套件档。
-v  显示指令执行过程。
-vv  详细显示指令执行过程,便于排错。
-addsign<套件档>+  在指定的套件里加上新的签名认证。
–allfiles  安装所有文件。
–allmatches  删除符合指定的套件所包含的文件。
–badreloc  发生错误时,重新配置文件。
–buildroot<根目录>  设置产生套件时,欲当作根目录的目录。
–changelog  显示套件的更改记录。
–checksig<套件档>+  检验该套件的签名认证。
–clean  完成套件的包装后,删除包装过程中所建立的目录。
–dbpath<数据库目录>  设置欲存放RPM数据库的目录。
–dump  显示每个文件的验证信息。本参数需配合"-l"参数使用。
–excludedocs  安装套件时,不要安装文件。
–excludepath<排除目录>  忽略在指定目录里的所有文件。
–force  强行置换套件或文件。
–ftpproxy<主机名称或IP地址>  指定FTP代理服务器。
–ftpport<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
–help  在线帮助。
–httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
–httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
–ignorearch  不验证套件档的结构正确性。
–ignoreos  不验证套件档的结构正确性。
–ignoresize  安装前不检查磁盘空间是否足够。
–includedocs  安装套件时,一并安装文件。
–initdb  确认有正确的数据库可以使用。
–justdb  更新数据库,当不变动任何文件。
–nobulid  不执行任何完成阶段。
–nodeps  不验证套件档的相互关联性。
–nofiles  不验证文件的属性。
–nogpg  略过所有GPG的签名认证。
–nomd5  不使用MD5编码演算确认文件的大小与正确性。
–nopgp  略过所有PGP的签名认证。
–noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
–noscripts  不执行任何安装Script文件。
–notriggers  不执行该套件包装内的任何Script文件。
–oldpackage  升级成旧版本的套件。
–percent  安装套件时显示完成度百分比。
–pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
–prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
–provides  查询该套件所提供的兼容度。
–queryformat<档头格式>  设置档头的表示方式。
–querytags  列出可用于档头格式的标签。
–rcfile<配置文件>  使用指定的配置文件。
–rebulid<套件档>  安装原始代码套件,重新产生二进制文件的套件。
–rebuliddb  以现有的数据库为主,重建一份数据库。
–recompile<套件档>  此参数的效果和指定"–rebulid"参数类似,当不产生套件档。
–relocate<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
–replacefiles  强行置换文件。
–replacepkgs  强行置换套件。
–requires  查询该套件所需要的兼容度。
–resing<套件档>+  删除现有认证,重新产生签名认证。
–rmsource  完成套件的包装后,删除原始代码。
–rmsource<文件>  删除原始代码和指定的文件。
–root<根目录>  设置欲当作根目录的目录。
–scripts  列出安装套件的Script的变量。
–setperms  设置文件的权限。
–setugids  设置文件的拥有者和所属群组。
–short-circuit  直接略过指定完成阶段的步骤。
–sign  产生PGP或GPG的签名认证。
–target=<安装平台>+  设置产生的套件的安装平台。
–test  仅作测试,并不真的安装套件。
–timecheck<检查秒数>  设置检查时间的计时秒数。
–triggeredby<套件档>  查询该套件的包装者。
–triggers  展示套件档内的包装Script。
–verify  此参数的效果和指定"-q"参数相同。
–version  显示版本信息。
–whatprovides<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
–whatrequires<功能特性>  查询该套件对指定的功能特性所需要的兼容度。

猜你喜欢

转载自blog.csdn.net/carefree2005/article/details/112691553