Linux 之 rpm 命令

一、RPM 介绍

RPM 是 Red-Hat Package Manager 的缩写,红帽包管理器,用于 linux 上软件包的安装、卸载、升级及查询等功能;

rpm 包的命名原则:

name-version-arch.rpm(软件名-版本号-硬件平台.后缀名);

二、RPM 命令

1. 格式及选项

用法: rpm [选项...]
-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:详细显示指令执行过程,便于排错。

2. 安装 rpm 软件包

rpm -ivh /PATH/TO/name-version-arch.rpm

3.升级 rpm 软件包

rpm -Uvh /PATH/TO/name-version-arch.rpm

4. 卸载 rpm 软件包

[root@mariadb ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@mariadb ~]# rpm -e tree

5. rpm 查询命令

# 列出系统所有安装的 rpm 包

[root@syztoo ~]# rpm -qa
tree-1.6.0-10.el7.x86_64
...

# 查询已安装的 rpm 包的完整命名 

[root@syztoo ~]# rpm -q tree
tree-1.6.0-10.el7.x86_64

# 查询已安装的 rpm 包的元数据信息

[root@syztoo ~]# rpm -qi httpd
Name        : httpd
Version     : 2.4.6
Release     : 88.el7.centos
Architecture: x86_64
Install Date: Sun 26 May 2019 11:31:29 PM EDT
Group       : System Environment/Daemons
Size        : 9817309
License     : ASL 2.0
Signature   : RSA/SHA256, Mon 12 Nov 2018 09:28:53 AM EST, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-88.el7.centos.src.rpm
Build Date  : Sun 04 Nov 2018 08:48:57 PM EST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem 
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

# 查询已安装的 rpm 包生成的文件的位置

[root@syztoo ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

# 查询已安装的 rpm 包生成的配置文件的位置

[root@syztoo ~]# rpm -qc httpd
/etc/httpd/conf/httpd.conf
...

# 查询已安装的 rpm 包生成的帮助手册文档

[root@syztoo ~]# rpm -qd httpd  
/usr/share/man/man8/httpd.8.gz     
...

# 查询某个文件来自于哪个 rpm 包

[root@syztoo ~]# rpm -qf /usr/bin/cat
coreutils-8.22-23.el7.x86_64

# 查询已安装的 rpm 包所依赖的软件包及文件

[root@syztoo ~]# rpm -qR httpd
/etc/mime.types
system-logos >= 7.92.1-1
...

# 查询未安装的 rpm 包的相关信息(这个 rpm 包要存在,才能查询)

[root@syztoo ~]# rpm -qp[i,l,R,c,d] /PATH/TO/name-version-arch.rpm

 

你可能感兴趣的:(Linux)