2017年9月11日 星期一

Gentoo 升級問題處理

在使用 emerge 升級 qt 相關的 package 時,會遇到類似下面的衝突
 >=dev-qt/qtdbus-5.6.1:5/5.6= required by (kde-frameworks/kauth-5.29.0:5/5.29::gentoo, installed)

解決辦法,參考: https://forums.gentoo.org/viewtopic-t-1046388-start-0.html

大略說明如下
First of all, you need to mask unwanted(?) Qt-5.7 RC, since you are using Qt overlay. You can place "dev-qt/*:5/5.7" in a conveniently named package.mask/ file.

If you install it for the first time, your above command should actually work, except if the sets do not take into account dependencies from e.g. @qt5-tools that also need to be present, or you are using a stable system and have only partially unmasked Qt5.

Furthermore, Qt can only be updated _at once_, not partially. To upgrade all your existing installed Qt packages prior to emerging qt-creator:

Code:

# emerge -av -1u $(qlist -CI dev-qt/*)

$ qlist -CI dev-qt/*
dev-qt/linguist-tools
dev-qt/qt3support
dev-qt/qtchooser
dev-qt/qtconcurrent
dev-qt/qtcore
dev-qt/qtcore
dev-qt/qtdbus
dev-qt/qtdbus
dev-qt/qtdeclarative
dev-qt/qtgui
dev-qt/qtgui
dev-qt/qtlockedfile
dev-qt/qtnetwork
dev-qt/qtopengl
dev-qt/qtopengl
dev-qt/qtprintsupport
dev-qt/qtquickcontrols
dev-qt/qtscript
dev-qt/qtscript
dev-qt/qtsingleapplication
dev-qt/qtsql
dev-qt/qtsql
dev-qt/qtsvg
dev-qt/qtsvg
dev-qt/qttest
dev-qt/qttranslations
dev-qt/qtwebkit
dev-qt/qtwidgets
dev-qt/qtx11extras
dev-qt/qtxml
dev-qt/qtxmlpatterns

Perl 升級時問題的處理
https://wiki.gentoo.org/wiki/Perl

The official way

root # emerge -uDNav --with-bdeps y --backtrack 100 @world
root # perl-cleaner --all
The need for the "--with-bdeps y" and "--backtrack 100" switches will go away over upcoming portage releasese.

升級至 17.0 profiles (2018-01-20)

執行 emerge -ave @world (等同於完整指令 emerge --verbose --ask --emptytree @world),在編譯 dev-qt/qtgui-5.7.1-r1 時,出現錯誤。

處理方式,執行 emerge -av1 $(qlist -IC dev-qt) --exclude=dev-qt/*:4 (等同於完整指令 emerge --verbose --oneshot --ask --exclude=dev-qt/*:4),這會重新編譯 31 個 package。
英文摘要 Here helped a rebuild of all installed dev-qt/*:5 packages in the right order, first qtcore, and so on.

然後再執行 emerge -ave @world,順利執行編譯 1090 個 package。

沒有留言: