rpm 基础命令用错了?
rpm 常见误用:装包不解析依赖、-q/-i 参数搞反、升级与降级方向搞错、卸载前不查被依赖。给正确命令速查表与纠错方法。
简短答案
rpm 只管”把这一个包装/卸/查”,不自动解析依赖。大多数”装不上”是把 rpm 当包管理器用了,应改用 yum/dnf;其次是参数打错:装用 -i/-U、查用 -q、卸用 -e。对照下表纠正。
常见误用对照表
| 误用 | 后果 | 正确做法 |
|---|---|---|
rpm -ivh 装包报缺依赖 |
依赖没解析,装不完 | 用 yum install ./包名.rpm,或先补齐依赖 |
把 -q 当 -i 用 |
查的结果被当成安装动作 | 安装用 -i/-U,查询用 -q 家族 |
rpm -Uvh 装比已装的旧版本 |
默认拒绝降级 | 确认要降级才加 --oldpackages |
校验时 -h 进度误以为报错 |
实际无错误 | -h 是进度显示,属正常 |
rpm -e 卸掉被依赖的包 |
依赖它的包随之失效 | 先 rpm -q --requires 查被谁依赖 |
正确姿势速查
# 查询(最常用)
rpm -q 包名 # 是否已安装
rpm -qa | grep 关键字 # 按关键字查已装包
rpm -qf /usr/bin/某文件 # 文件属于哪个包
rpm -qc 包名 # 该包的配置文件清单
rpm -V 包名 # 校验包文件完整性
# 安装 / 升级 / 卸载
rpm -ivh 包.rpm
rpm -Uvh 包.rpm
rpm -e 包名
离线环境拿到的 rpm 包先核对架构:
uname -m看本机,rpm -qp看包目标架构,装错架构会直接报错。包来源与校验方式参见 服务器 V11 条目 页面说明。
处理办法
- 依赖解析问题一律走 yum/dnf,不要裸用 rpm 硬装;
- 卸载前先
rpm -q --requires确认依赖方向,避免卸出连锁故障; - 整环境重建时,介质从 Linux 下载区 取,U 盘写法参考 Rufus 启动盘条目。
操作小结
- 能走 yum/dnf 就不裸用 rpm;
- 查用
-q家族,动包用-i/-U/-e; - 卸载前查被依赖关系;
- 离线 rpm 先核对架构与校验值再装。