CentOS 7更新时出现:Multilib version problems问题的解决方法
<p><strong>前言</strong></p><p>关于CentOS的出身就不多多说了,拥有RHEL所有功能和性能,甚至更加友好,最重要一点是免费,深受大家的喜爱,CentOS的受欢迎程度并不亚于Ubuntu,之前安装了CentOS7,关于安装的教程,来一起看看详细的介绍吧。</p><p><strong>发现问题</strong></p><p>
最近这两天在更新CentOS7系统时,出现了Multilib version problems错误,执行命令:</p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_162070"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash comments"># yum update</code></div></div></td></tr></tbody></table></div></div><div class="codetool" id="codetool"><div class="code_n"></div></div></div><p><strong>出现了的错误信息:</strong></p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_613963"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div><div class="line number10 index9 alt1">
10</div><div class="line number11 index10 alt2">
11</div><div class="line number12 index11 alt1">
12</div><div class="line number13 index12 alt2">
13</div><div class="line number14 index13 alt1">
14</div><div class="line number15 index14 alt2">
15</div><div class="line number16 index15 alt1">
16</div><div class="line number17 index16 alt2">
17</div><div class="line number18 index17 alt1">
18</div><div class="line number19 index18 alt2">
19</div><div class="line number20 index19 alt1">
20</div><div class="line number21 index20 alt2">
21</div><div class="line number22 index21 alt1">
22</div><div class="line number23 index22 alt2">
23</div><div class="line number24 index23 alt1">
24</div><div class="line number25 index24 alt2">
25</div><div class="line number26 index25 alt1">
26</div><div class="line number27 index26 alt2">
27</div><div class="line number28 index27 alt1">
28</div><div class="line number29 index28 alt2">
29</div><div class="line number30 index29 alt1">
30</div><div class="line number31 index30 alt2">
31</div><div class="line number32 index31 alt1">
32</div><div class="line number33 index32 alt2">
33</div><div class="line number34 index33 alt1">
34</div><div class="line number35 index34 alt2">
35</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">....</code></div><div class="line number2 index1 alt1"><code class="bash plain">---> Package libcap-ng.i686 0:0.7.5-4.el7 will be installed</code></div><div class="line number3 index2 alt2"><code class="bash plain">---> Package libstdc++.i686 0:4.8.5-16.el7 will be installed</code></div><div class="line number4 index3 alt1"><code class="bash plain">--> Finished Dependency Resolution</code></div><div class="line number5 index4 alt2"><code class="bash plain">Error: Multilib version problems found. This often means that the root</code></div><div class="line number6 index5 alt1"><code class="bash spaces"> </code><code class="bash plain">cause is something </code><code class="bash keyword">else</code> <code class="bash plain">and multilib version checking is just</code></div><div class="line number7 index6 alt2"><code class="bash spaces"> </code><code class="bash plain">pointing out that there is a problem. Eg.:</code></div><div class="line number8 index7 alt1">
</div><div class="line number9 index8 alt2"><code class="bash spaces"> </code><code class="bash plain">1. You have an upgrade </code><code class="bash keyword">for</code> <code class="bash plain">glibc </code><code class="bash functions">which</code> <code class="bash plain">is missing some</code></div><div class="line number10 index9 alt1"><code class="bash spaces"> </code><code class="bash plain">dependency that another package requires. Yum is trying to</code></div><div class="line number11 index10 alt2"><code class="bash spaces"> </code><code class="bash plain">solve this by installing an older version of glibc of the</code></div><div class="line number12 index11 alt1"><code class="bash spaces"> </code><code class="bash plain">different architecture. If you exclude the bad architecture</code></div><div class="line number13 index12 alt2"><code class="bash spaces"> </code><code class="bash plain">yum will tell you what the root cause is (</code><code class="bash functions">which</code> <code class="bash plain">package</code></div><div class="line number14 index13 alt1"><code class="bash spaces"> </code><code class="bash plain">requires what). You can try redoing the upgrade with</code></div><div class="line number15 index14 alt2"><code class="bash spaces"> </code><code class="bash plain">--exclude glibc.otherarch ... this should give you an error</code></div><div class="line number16 index15 alt1"><code class="bash spaces"> </code><code class="bash plain">message showing the root cause of the problem.</code></div><div class="line number17 index16 alt2">
</div><div class="line number18 index17 alt1"><code class="bash spaces"> </code><code class="bash plain">2. You have multiple architectures of glibc installed, but</code></div><div class="line number19 index18 alt2"><code class="bash spaces"> </code><code class="bash plain">yum can only see an upgrade </code><code class="bash keyword">for</code> <code class="bash plain">one of those architectures.</code></div><div class="line number20 index19 alt1"><code class="bash spaces"> </code><code class="bash plain">If you don't want</code><code class="bash plain">/need</code> <code class="bash plain">both architectures anymore </code><code class="bash keyword">then</code> <code class="bash plain">you</code></div><div class="line number21 index20 alt2"><code class="bash spaces"> </code><code class="bash plain">can remove the one with the missing update and everything</code></div><div class="line number22 index21 alt1"><code class="bash spaces"> </code><code class="bash plain">will work.</code></div><div class="line number23 index22 alt2">
</div><div class="line number24 index23 alt1"><code class="bash spaces"> </code><code class="bash plain">3. You have duplicate versions of glibc installed already.</code></div><div class="line number25 index24 alt2"><code class="bash spaces"> </code><code class="bash plain">You can use </code><code class="bash string">"yum check"</code> <code class="bash plain">to get yum show these errors.</code></div><div class="line number26 index25 alt1">
</div><div class="line number27 index26 alt2"><code class="bash spaces"> </code><code class="bash plain">...you can also use --setopt=protected_multilib=</code><code class="bash functions">false</code> <code class="bash plain">to remove</code></div><div class="line number28 index27 alt1"><code class="bash spaces"> </code><code class="bash plain">this checking, however this is almost never the correct thing to</code></div><div class="line number29 index28 alt2"><code class="bash spaces"> </code><code class="bash keyword">do</code> <code class="bash plain">as something </code><code class="bash keyword">else</code> <code class="bash plain">is very likely to go wrong (often causing</code></div><div class="line number30 index29 alt1"><code class="bash spaces"> </code><code class="bash plain">much </code><code class="bash functions">more</code> <code class="bash plain">problems).</code></div><div class="line number31 index30 alt2">
</div><div class="line number32 index31 alt1"><code class="bash spaces"> </code><code class="bash plain">Protected multilib versions: glibc-2.17-196.el7.i686 != glibc-2.17-157.el7_3.1.x86_64</code></div><div class="line number33 index32 alt2"><code class="bash plain">Error: Protected multilib versions: pcre-8.32-17.el7.i686 != pcre-8.32-15.el7_2.1.x86_64</code></div><div class="line number34 index33 alt1"><code class="bash plain">Error: Protected multilib versions: elfutils-libs-0.168-8.el7.i686 != elfutils-libs-0.166-2.el7.x86_64</code></div><div class="line number35 index34 alt2"><code class="bash plain">......</code></div></div></td></tr></tbody></table></div></div><div class="codetool" id="codetool"><div class="code_n"></div></div></div><p><strong>解决过程如下:</strong></p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_182827"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div><div class="line number10 index9 alt1">
10</div><div class="line number11 index10 alt2">
11</div><div class="line number12 index11 alt1">
12</div><div class="line number13 index12 alt2">
13</div><div class="line number14 index13 alt1">
14</div><div class="line number15 index14 alt2">
15</div><div class="line number16 index15 alt1">
16</div><div class="line number17 index16 alt2">
17</div><div class="line number18 index17 alt1">
18</div><div class="line number19 index18 alt2">
19</div><div class="line number20 index19 alt1">
20</div><div class="line number21 index20 alt2">
21</div><div class="line number22 index21 alt1">
22</div><div class="line number23 index22 alt2">
23</div><div class="line number24 index23 alt1">
24</div><div class="line number25 index24 alt2">
25</div><div class="line number26 index25 alt1">
26</div><div class="line number27 index26 alt2">
27</div><div class="line number28 index27 alt1">
28</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">//</code><code class="bash plain">查询重复的软件包</code></div><div class="line number2 index1 alt1"><code class="bash comments"># rpm -q systemd-libs</code></div><div class="line number3 index2 alt2"><code class="bash plain">systemd-libs-219-30.el7.x86_64</code></div><div class="line number4 index3 alt1"><code class="bash plain">systemd-libs-219-42.el7_4.1.x86_64</code></div><div class="line number5 index4 alt2">
</div><div class="line number6 index5 alt1"><code class="bash plain">//</code><code class="bash plain">删除旧版</code></div><div class="line number7 index6 alt2"><code class="bash comments"># rpm -e systemd-libs-219-30.el7.x86_64</code></div><div class="line number8 index7 alt1"><code class="bash plain">error: Failed dependencies:</code></div><div class="line number9 index8 alt2"><code class="bash spaces"> </code><code class="bash plain">systemd-libs = 219-30.el7 is needed by (installed) libgudev1-219-30.el7.x86_64</code></div><div class="line number10 index9 alt1">
</div><div class="line number11 index10 alt2"><code class="bash plain">//</code><code class="bash plain">仍然出现依赖问题,继续查询libgudev1的版本信息</code></div><div class="line number12 index11 alt1"><code class="bash comments"># rpm -q libgudev1</code></div><div class="line number13 index12 alt2"><code class="bash plain">libgudev1-219-30.el7.x86_64</code></div><div class="line number14 index13 alt1">
</div><div class="line number15 index14 alt2"><code class="bash plain">//</code><code class="bash plain">发现只有一个版本,升级试一下</code></div><div class="line number16 index15 alt1"><code class="bash comments"># yum update libgudev1</code></div><div class="line number17 index16 alt2"><code class="bash plain">......</code></div><div class="line number18 index17 alt1"><code class="bash plain">Updated:</code></div><div class="line number19 index18 alt2"><code class="bash spaces"> </code><code class="bash plain">libgudev1.x86_64 0:219-42.el7_4.1 </code></div><div class="line number20 index19 alt1">
</div><div class="line number21 index20 alt2"><code class="bash plain">Complete!</code></div><div class="line number22 index21 alt1"><code class="bash comments"># rpm -q libgudev1</code></div><div class="line number23 index22 alt2"><code class="bash plain">libgudev1-219-42.el7_4.1.x86_64</code></div><div class="line number24 index23 alt1">
</div><div class="line number25 index24 alt2"><code class="bash plain">//</code><code class="bash plain">升级完成后,删除旧版本的systemd-libs</code></div><div class="line number26 index25 alt1"><code class="bash comments"># rpm -e systemd-libs-219-30.el7.x86_64</code></div><div class="line number27 index26 alt2"><code class="bash comments"># rpm -q systemd-libs</code></div><div class="line number28 index27 alt1"><code class="bash plain">systemd-libs-219-42.el7_4.1.x86_64</code></div></div></td></tr></tbody></table></div></div><div class="codetool" id="codetool"><div class="code_n"></div></div></div><p>
最后查询发现只剩下最新版本的systemd-libs,其他重复版本包的解决,也是同样的过程。</p><p><strong>核心的命令主要是:</strong></p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_811475"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">rpm -q package-names</code></div><div class="line number2 index1 alt1"><code class="bash plain">rpm -e package-full-version</code></div></div></td></tr></tbody></table></div></div><div class="codetool" id="codetool"><div class="code_n"></div></div></div><p><strong>总结</strong></p><p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。</p><p><br/></p>
頁:
[1]