说明

  rpm命令的全称是:Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版都使用了这种形式的命令管理、安装、更新和卸载软件
  rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证

格式

  rpm [option]

常用参数
  • -q:查询软件包
  • -p:后接以”.rpm”为后缀的软件包
  • -i:如果与-qp配合使用,则表示显示软件包的概要信息,此时i是info的缩写;安装软件包,此时i是install的缩写
  • -l:显示软件包的所有文件列表
  • -R:显示软件包的依赖环境
  • -v:显示详细信息
  • -h:用#显示安装进度条
  • -a:与-q搭配使用,用户查询所有的软件包
  • -e:卸载软件包
  • -f:查看文件或命令属于哪个软件包
  • -U:升级软件包
示例

准备:下载一个rpm软件包
阿里云Centos7的RPM包地址:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/

[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm

1、查看rpm包信息

[root@localhost ~]# rpm -qpi lrzsz-0.12.20-36.el7.x86_64.rpm  #这里i表示info,单独使用i就是install
Name        : lrzsz
Version     : 0.12.20
Release     : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Communications
Size        : 184846
License     : GPLv2+
Signature   : RSA/SHA256, Thu 03 Jul 2014 11:35:32 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : lrzsz-0.12.20-36.el7.src.rpm
Build Date  : Mon 09 Jun 2014 07:29:11 PM EDT
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.ohse.de/uwe/software/lrzsz.html
Summary     : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.

2、查询可能rpm包内的文件

[root@localhost ~]# rpm -qpl lrzsz-0.12.20-36.el7.x86_64.rpm 
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz

3、查看rpm包的依赖

[root@localhost ~]# rpm -qpR lrzsz-0.12.20-36.el7.x86_64.rpm 
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libnsl.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

4、安装rpm包

[root@localhost ~]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:lrzsz-0.12.20-36.el7             ################################# [100%]

#rpm还支持在线安装,直接在后面跟rpm包的链接地址
[root@localhost ~]# rpm -ivh http://xxxxx/xxx.rpm

5、查询系统是否安装了指定的rpm包

[root@localhost ~]# rpm -qa lrzsz
lrzsz-0.12.20-36.el7.x86_64

6、卸载rpm包(这个尽量少使用

[root@localhost ~]# rpm -e lrzsz #卸载软件包使用-e参数,这个参数比较危险,一般情况下没有必要则不要去卸载软件包,有可能会误删一些系统必备的文件,最后导致系统损坏

7、卸载rpm包(不卸载相关依赖)

[root@localhost ~]# rpm -e --nodeps lrzsz #一般尽量不要卸载,如果非要卸载可以使用该命令,但是也不能防止误卸载了相关依赖

8、查询文件属于哪个rpm包(有时候会发现系统没有某些文件或者命令,但有不知道属于哪个软件包,这时候可以使用-f来查询)

[root@localhost ~]# rpm -qf $(which rz)
lrzsz-0.12.20-36.el7.x86_64
[root@localhost ~]# rpm -qf $(which sz)
lrzsz-0.12.20-36.el7.x86_64