更多分享内容可访问我的个人博客
本文介绍 gentoo 系统下的软件包冲突及其解决思路。
软件包冲突
什么是软件包冲突?用一句话来概括就是两者无法共存。无法共存的原因是什么?两者在同一个依赖上有不同的要求。
举个例子。dev-libs/protobuf
是media-libs/opencv
的一个依赖。它同时也是media-video/vlc
的一个依赖。假设现在 vlc 想升级,需要3.19.1
版本的 protobuf。但是当前版本的 opencv 要求 protobuf 的版本不得高于3.17.3
。于是,由于 opencv 限制了 protobuf 的版本,导致 vlc 无法升级。 冲突就这样产生了。
同理这样的冲突也可能是因为对依赖的 USE FLAG
、PYTHON_TARGET
等要求不同引起的。
解决思路
对于一般人来说,要去搞清楚 opencv 为什么要求 protobuf 版本不高于3.17.3
,并且把它改了,是不太现实的。这基本上都会涉及源码。所以,解决问题的思路只有一个,使用 ge