一、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 <http://bugs.centos.org>
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