各位前辈好
我一键安装 bcloud 时碰到冲突 (如附图),请问在这类情况下,该如何判断适用的冲突解决选项呢?
出现这种情况大体可以有以下几个原则:
- 不要变更操作系统架构,比如把原来的 x86_64 变成 i586,(命令行执行 uname -m 可以让你知道你的系统架构,或者说 openSUSE 版本是 32 位还是 64 位),你也知道 32 位和 64 位不是一个东西。
1.1 这里有一个特例是 x86_64 -> noarch 这种,比如有些 python 的软件包是存在的。
- 能不卸载就不卸载。比如安装一个软件包让你卸载掉 700 多个软件包。
- 除非你知道你在做什么,比如我自己就是打包匠,我知道我的包可能 specfile 有一个地方写错了,否则不要用忽略依赖关系强制安装的选项。因为这么选了之后 YaST 再无可能查出故障。
- 变更软件包的厂商(制作人)的原则:
4.1 除非你知道你在做什么,否则官方源优于所有其它源。比如 xxx -> openSUSE 这种变更是允许的。某种程度上,在你不是很了解 openSUSE 包管理体系的时候它能够有效地无形中纠正你做出的一些错误选择。比如你切换了一个系统软件包到不稳定的版本,它能给改过来。但是如果你知道你在做什么就不必了,比如你通过 KDE:Current 把 KDE 升级为 4.13.2,而官方源中是 4.11,这种情况就不必降级。
4.2 除非你知道你在做什么,否则官方开发源优于除了官方源以外的所有其它源。比如 home:xxx -> devel:xxx 这种由 home 切换到非 home 的变更是允许的。因为 home 源谁都可以申请,软件包的质量参差不齐,开发源是官方认可的打包者为发行版开发软件包的地方,相对质量有所保证。但是如果你知道你在做什么就不必了,比如我可能知道 13.1 的 glew 有 bug,于是我会在我的 home 源里制作一个修复版本。这时肯定要安装我自己的。
4.3 只从 home 源中取自己需要的、且官方没有提供的软件包。比如我的 home 里可能有一个你需要的 hime 输入法,但同时也有一个非常老的 gtk2(会导致你后续基本上所有 gtk 相关的软件包都会弹出冲突解决对话框),你只装 hime 是不会带上我的 gtk 的,除非是你操作失误,选择切换系统软件包到该源。从图中看你肯定有这样的失误了。这是个一步错,步步都可能错的问题。
- 能不降级就不降级。比如 3.10 版本降级到 3.9 版本,这是没有必要的。
如果这 5 条军规之间产生冲突,编号越小的作用力越大。比如,开发源中的版本是 3.9, 而 home 源中的版本是 3.10,那么提示的时候,版本规律要服从软件源优先级规律,所以要选择把 3.10 版本降级为开发源中的 3.9。
根据你图中的提示,gtk3-devel 需要 cairo-devel。
- 6 不选
- 4、5 是你的目的,自然不选
- 2、3 是由官方源切换到 home 源,会损失稳定性,自然不选。
- 1 纠正了你 Mesa 的错误,从 home 到官方源中的版本。
所以选 1。
2赞