我遇到一个问题,为了满足 RPM 依赖关系,我需要在同一个命令中删除软件包并将其降级。
想象一下以下情况
前
- A v2.0 依赖于 B、C
- B v2.0 依赖于 C > 1.0
- C 语言版本 1.1
后
- v1.0 依赖于 C
- 版本 1.0
如果我发出
$ rpm -Uvh --oldpackage Av1.0.rpm Cv1.0.rpm
它会失败并显示“B 依赖于 C > 1.0”
如果我发出
$ rpm -e B
它会失败并显示“A 需要 B”,所以我似乎陷入了两难境地。显而易见的解决方案是在降级之前使用“--nodeps”并删除 B,但我以编程方式创建这些命令,因此我希望使用依赖项解析作为对错误脚本的健全性检查。
有没有什么办法可以执行降级而不强制破坏 RPM 依赖性健全性检查?
答案1
yum shell
允许您在单个事务中执行所有操作之前指定多个操作。
答案2
如果愿意,您可以在删除 B 之前将 --nodeps 选项用于 -U。(或者 --force 是几个好标志的组合;-)