我最近安装了全新的 Sabayon 7 + KDE 发行版。现在我正在使用 portage 安装一些软件。我输入了“emerge thunderbird”,但由于冲突,安装失败。我看到的是,从 portage 安装包“pinentry”会覆盖由 entropy 管理的包“pinentry-base”中的一些文件。我该如何解决这个冲突?以下是错误消息:
* Messages for package app-crypt/pinentry-0.8.1:
* This package will overwrite one or more files that may belong to other
* packages (see list below). You can use a command such as `portageq
* owners / <filename>` to identify the installed package that owns a
* file. If portageq reports that only one package owns a file then do
* NOT file a bug report. A bug report is only useful if it identifies at
* least two or more packages that are known to install the same file(s).
* If a collision occurs and you can not explain where the file came from
* then you should simply ignore the collision since there is not enough
* information to determine if a real problem exists. Please do NOT file
* a bug report at http://bugs.gentoo.org unless you report exactly which
* two packages install the same file(s). Once again, please do NOT file
* a bug report unless you have completely understood the above message.
*
* Detected file collision(s):
*
* /usr/share/info/pinentry.info.bz2
* /usr/bin/pinentry-qt4
* /usr/bin/pinentry-curses
*
* Searching all installed packages for file collisions...
*
* Press Ctrl-C to Stop
*
* app-crypt/pinentry-qt4-0.8.1-r1
* /usr/bin/pinentry-qt4
*
* app-crypt/pinentry-base-0.8.1
* /usr/bin/pinentry-curses
* /usr/share/info/pinentry.info.bz2
*
* Package 'app-crypt/pinentry-0.8.1' NOT merged due to file collisions.
* If necessary, refer to your elog messages for the whole content of the
* above message.
命令 portageqowners//usr/share/info/pinentry.info.bz2 说:
app-crypt/pinentry-base-0.8.1
/usr/share/info/pinentry.info.bz2
答案1
混合portage
使用entropy
会导致问题。它们是管理系统包的略有不同的方法,不幸的是,它们并不总是能很好地协作。我以前也遇到过类似的问题,最后我把我的萨芭雍完全进入Gentoo,我已经对此感到满意了。如果你真的想继续entropy
混合portage
,Sabayon 维基可能会对你有帮助。
在这种特殊情况下,最好的解决方案是先删除app-crypt/pinentry-qt4
和app-crypt/pinentry-base
(通过熵),然后重试出现thunderbird
。
在其他情况下,尤其是当没有找到文件所有者时,您可能会使用该COLLISION_IGNORE
变量来强制出现包,尽管存在冲突。但这样做极其谨慎,因为您可能会破坏系统,覆盖其他软件包所依赖的内容。变量需要指示系统目录树的哪一部分应该是未受保护,所以在你的情况下运行就足够了COLLISION_IGNORE="/usr" emerge -1 app-crypt/pinentry
(-1
是为了防止pinentry
它进入你的world
文件。