- Gentoo老版本升級過程emerge異常報錯處理
- 作者:李群 weibo.com/li9un
- 時間:2012-4-27
- 最近升級一個比較老版本的伺服器,全面升級時,出現各種問題,下面記錄一下,和大家分享。
- 交叉依賴
一種方法是一起安裝。
emerge -aDuv portage
時,警示和 logrotate
衝突,一起安裝就可以了。
emerge-a1 portage logrotate
一種是先強制安裝一個。
# emerge -uDvworld時,gcc、glibc之前交叉依賴。一起裝也不行,就先強制安裝gcc。
# emerge-uDv --no-deps gcc
[blocks B]
方法可以是卸載阻擋的包;或者按照阻擋的包的新版本;
比如報錯: [blocks B] A isbocking B
# emerge --unmerge A
刪除一些軟體後,有時會出現以下的報錯:
emerge:there are no ebuilds to satisfy "media-fonts/gnu-gs-fonts-std".
這時候,可以考慮繼續把這個軟體刪除。
安裝的編譯過程中有時候會報錯,某些庫版本太低了。
這時候就需要先安裝這個庫。可能需要重新編譯受影響的包,出現問題不要緊張,繼續即可。
有時候會安裝時報錯:
IOError:[Errno 11] Resource temporarily unavailable
是個python執行的錯誤,可能是emerge程式的問題,使用新版本或其他機器上好用的版本。或者先升級emerge。
#
emerge -uDv emerge
有時候會報錯
USE changes ,有些包需要特定的USE,沒有設定,可以在/etc/portage/package.use
中設定。
請仔細查看emerge的最後的輸出提示。按提示進行相應的操作。
升級過程中還遇到一個問題:配置網路後,apache無法啟動,說啟動eth1,這個裝置根本不存在。檢查eth0裝置正常,能夠串連外網,但服務都企圖啟動eth1,然後失敗,不能啟動。報錯類似:
# /etc/init.d/apache start
Bringing up interfaceeth1
ERROR: interface eth1 does not exist
發現 /etc/init.d
只有net.eth1的符號串連,沒有net.eth0的符號串連,建立串連
Ln-s /etc/init.d/net.lo /etc/init.d/net.eth0
這樣還是不正常,刪除/etc/init.d/net.eth1
後恢複正常。