本地 rpm 包怎么装
rpm 命令直接操作本地 rpm 文件:-ivh 安装、-Uvh 升级安装,但它不做依赖解析。能联源时更推荐用 dnf 安装本地包,让工具自动补齐依赖。--nodeps 与 --force 属于高危参数,会把系统带到依赖破损状态,只在明确后果并准备好回滚时使用。
基本信息
| 安装 | rpm -ivh 包文件.rpm |
|---|---|
| 升级安装 | rpm -Uvh 包文件.rpm |
| 仅升级已装 | rpm -Fvh 包文件.rpm |
| 查看依赖 | rpm -qpR 包文件.rpm |
| 推荐方式 | dnf install ./包文件.rpm(可解析依赖) |
典型使用场景
- 离线环境安装厂商提供的 rpm 包
- 安装特定版本的包,避开仓库里的新版本
- 交付验收时核对包内脚本与依赖
- 从归档中恢复某个被误删的软件包
- 排查依赖破损问题并逐项修复
示例与自查
示例与自查
rpm -qpR ./app-1.0-1.aarch64.rpm # 先看包声明的依赖
rpm -qpl ./app-1.0-1.aarch64.rpm | head # 看包会安装哪些文件
rpm -q --scripts app # 查看安装脚本内容
rpm -ivh ./app-1.0-1.aarch64.rpm # 安装
rpm -Uvh ./app-1.1-1.aarch64.rpm # 升级安装
rpm -qa | grep app # 确认已安装版本
rpm -V app # 校验已装文件是否被改动参数对照
| 参数 | 作用 | 注意点 |
|---|---|---|
| -ivh | 安装新包 | 同名包已存在时会冲突报错 |
| -Uvh | 升级或安装 | 升级场景的常规选择 |
| -Fvh | 仅升级已安装的包 | 不会新装未安装的包 |
| -qpR | 查看包声明的依赖 | 安装前必做 |
| --nodeps | 忽略依赖检查 | 高危,会留下破损状态 |
| --force | 强制覆盖安装 | 高危,可能覆盖系统文件 |
安装前检查
- 确认包与系统体系架构一致
- 查看包声明的依赖是否满足
- 查看安装脚本会做哪些动作
- 确认版本号与升级路径符合预期
- 准备好失败后的卸载或回滚手段
--nodeps 与 --force 会把系统带到依赖破损或文件被覆盖的状态,仅在完全清楚后果并准备好回滚时使用;能联源时优先交给 dnf 处理依赖。
与 dnf 安装的差异
- 依赖解析:dnf 会自动补齐
- 本地包安装:dnf 也支持直接安装包文件
- 离线环境:rpm 更直接可用
- 变更记录:两种方式都会写入事务历史