RPM命令

RPM命令

RPM 全称 Red Hat Package Manager(红帽软件包管理器),是一种用于 Linux 系统的软件包管理工具。它由 Red Hat 公司开发,最初用于 Red Hat Linux,现已成为众多 Linux 发行版的标准包管理格式

一、查询与信息

1. 基础查询

rpm -q <包名>            # 查询包是否已安装
rpm -qa                  # 列出所有已安装的包
rpm -qa | grep <关键词>   # 模糊查找
rpm -qf <文件路径>        # 查询某个文件属于哪个包
rpm -qc <包名>            # 列出包的配置文件
rpm -qd <包名>            # 列出包的文档文件
rpm -ql <包名>            # 列出包安装的所有文件
rpm -qi <包名>            # 查看包的详细信息
rpm -qR <包名>            # 查看包的依赖

2. 未安装包信息查询

rpm -qip <rpm文件>        # 查看未安装包的信息
rpm -qlp <rpm文件>        # 列出未安装包将安装的文件
rpm -qcp <rpm文件>        # 查看未安装包的配置文件
rpm -qRp <rpm文件>        # 查看未安装包的依赖

3. 包状态验证

rpm -V <包名>             # 校验已安装包的文件(大小、权限、MD5等)
rpm -Va                   # 校验所有已安装包
rpm -K <rpm文件>          # 检查包的签名和完整性

二、安装与升级

rpm -ivh <包文件>          # 安装新包(显示进度条)
# 参数组合:
# -i : install
# -v : verbose
# -h : hash 进度条

rpm -Uvh <包文件>          # 升级包(存在则升级,不存在则安装)
rpm -Fvh <包文件>          # 仅升级已安装的包,不存在则忽略

# 常用附加参数
rpm -ivh --nodeps <包>     # 忽略依赖强制安装(不推荐)
rpm -ivh --force <包>      # 强制安装(覆盖已存在文件等)
rpm -Uvh --oldpackage <包> # 降级安装
rpm -ivh --prefix <目录>   # 安装到指定前缀目录
rpm -ivh --excludedocs     # 不安装文档文件
rpm -ivh --test <包>       # 测试安装,不实际操作

三、卸载

rpm -e <包名>              # 卸载(不检查依赖)
rpm -e --nodeps <包名>     # 忽略依赖强制卸载(危险)
rpm -e --test <包名>       # 模拟卸载,查看是否存在依赖问题

四、RPM 包构建与重打包

1. 从源码构建

rpmbuild -ba <spec文件>    # 构建源码包与二进制包
rpmbuild -bb <spec文件>    # 仅构建二进制包
rpmbuild -bs <spec文件>    # 仅构建源码包

2. 重新打包

rpm2cpio <rpm文件> | cpio -idmv  # 不解包直接提取文件

# 将已安装包重新打包
rpm -e --repackage <包名>  # 卸载时自动保存为RPM(依赖插件)

五、RPM 数据库维护

rpm --initdb               # 初始化RPM数据库(无则创建)
rpm --rebuilddb            # 重建损坏的RPM数据库
rpm --verifydb             # 验证数据库完整性

六、签名与安全

rpm --import <公钥文件>    # 导入GPG公钥
rpm -q gpg-pubkey*         # 列出所有已导入的密钥
rpm --resign <rpm文件>     # 对包重新签名
rpm --addsign <rpm文件>    # 对未签名的包添加签名

七、实用组合

# 查询指定文件来自哪个包
rpm -qf /etc/ssh/sshd_config

# 查找并列出某个包的所有配置文件位置
rpm -qc openssh-server

# 查看最近安装的包(按时间排序)
rpm -qa --last | head

# 列出所有未正确安装或损坏的包
rpm -qa --state missing

# 查找占用磁盘空间最大的已安装包
rpm -qa --queryformat '%{size} %{name}\n' | sort -nr | head -10

查询格式化输出 --queryformat 常用标签

标签

含义

%{name}

包名

%{version}

版本号

%{release}

发行号

%{arch}

架构

%{size}

占用空间(字节)

%{installtime}

安装时间戳

%{buildtime}

构建时间戳

%{vendor}

供应商

%{license}

许可证

示例:

rpm -qa --queryformat "%-30{name} %10{size} %{vendor}\n"

yum 下载全量依赖包(离线安装包)完整教程 2026-07-03
1、Spring 是什么? 2026-07-06

评论区