当我尝试用 更新 YUM 时sudo yum update --exclude=kernel*,python* --skip-broken,我被Multilib version problems发现了。受保护的多库版本:
systemd-libs-219-30.el7_3.7.x86_64!=systemd-libs-219-30.el7_3.6.i686.
我该如何解决这个问题?我有 CentOS 7.3,我的架构是 x86_64。
Fout: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem. Eg.:
1. You have an upgrade for systemd-libs which is missing some
dependency that another package requires. Yum is trying to
solve this by installing an older version of systemd-libs of the
different architecture. If you exclude the bad architecture
yum will tell you what the root cause is (which package
requires what). You can try redoing the upgrade with
--exclude systemd-libs.otherarch ... this should give you an error
message showing the root cause of the problem.
2. You have multiple architectures of systemd-libs installed, but
yum can only see an upgrade for one of those architectures.
If you don't want/need both architectures anymore then you
can remove the one with the missing update and everything
will work.
3. You have duplicate versions of systemd-libs installed already.
You can use "yum check" to get yum show these errors.
...you can also use --setopt=protected_multilib=false to remove
this checking, however this is almost never the correct thing to
do as something else is very likely to go wrong (often causing
much more problems).
Beschermde multilib-versies: systemd-libs-219-30.el7_3.7.x86_64!=systemd-libs-219-30.el7_3.6.i686
Run Code Online (Sandbox Code Playgroud)
Yum 抱怨系统中 systemd-libs 的 64 位和 32 位 RPM 版本不匹配。
您会看到它的版本为 219-30.el7_3。7用于 x86_64(64 位)和版本 219-30.el7_3。6为 i686(32 位)。
您可以使用以下命令检查系统中每个架构的软件包版本:
$ rpm -q systemd-libs
systemd-libs-219-30.el7_3.6.i686
systemd-libs-219-30.el7_3.7.x86_64
Run Code Online (Sandbox Code Playgroud)
看看你是否在那里看到了一些异常,比如有两个版本的 i686 的 systemd-libs ......
如果版本匹配,那么问题可能是 yum 正在尝试升级 x86_64 版本,但留下了 i686 版本。
--skip-broken如果包的 i686 版本以某种方式“损坏”到 yum ,您可能会以某种方式触发此操作...
也有可能您的系统被重新配置为仅考虑 64 位软件包,而不再尝试安装(或维护)32 位软件包...
您可以尝试使用 yum-utils 包中的一些实用程序来解决此问题。
你能安装吗?
$ sudo yum install yum-utils
Run Code Online (Sandbox Code Playgroud)
如果这样做,请尝试使用此命令来完成被中断的 yum 事务(这可能首先导致了问题):
$ sudo yum-complete-transaction
Run Code Online (Sandbox Code Playgroud)
您也可以使用该package-cleanup命令。例如,如果您似乎有重复的软件包(为 32 位软件包安装了多个版本),请尝试以下操作:
$ sudo package-cleanup --cleandupes
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
小智 0
先尝试一下:
yum install systemd-libs
Run Code Online (Sandbox Code Playgroud)
进而
yum update --exclude=kernel*,python* --skip-broken
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21035 次 |
| 最近记录: |