把 /var/cache/edb及/var/db/pkg殺掉後,emerge總是失?

歡喜聊天區!除了有關暴力、血腥、色情與測試項目以外,都可聊!

Moderator: Forums Team

Post Reply
betaparticle
Posts: 312
Joined: Thu Jan 01, 2004 12:46 pm

把 /var/cache/edb及/var/db/pkg殺掉後,emerge總是失?

Post by betaparticle »

整個來說,是我太無聊。才會發生這種事情。

因為最近我emerge -u <某個package>
總是會出現要升級 sys-kernel/gentoo-dev-source-2.6.7-r11
以及sys-kernel/linux-headers-2.4.26,當然還是一些我不認為是沒有移除乾淨的package

所以,我就無知地把/var/cache/edb及/var/db/pkg這兩個目錄殺掉。目的只是想要讓emerge重新建立相依性。
雖然系統使用上沒有問題,重開機也很順利。
但是portage相關的東西發生了很多問題。


從此之後,我emerge <package>都會要從 patch-2.5.9開始。但是偏偏這一個每次都停在下面這裡

Code: Select all

checking how to run the C preprocessor... /lib/cpp
configure: error: C preprocessor "/lib/cpp" fails sanity check
我知道我麻煩大了。從此portage等於是廢掉了。
我尋找了 forums.gentoo.org
試著想要用 bootstrap.sh 也失敗。
真是夠慘了。

現在我看到一個

Code: Select all

USE="bootstrap" emerge gcc
我試了之後,現在正在跑當中。應該是可以,因為他很順利地到了18 of 37 個package 了。

我想,也許這可以讓不小心把該殺的東西給殺掉,卻又不想重灌的人試試。

我不懂的是,為什麼連bootstrap.sh都不行的動作,用上面那一行emerge就可以?
失去網路的電腦==折斷翅膀的天使。

太難的我不會,不要問我。
betaparticle
Posts: 312
Joined: Thu Jan 01, 2004 12:46 pm

Post by betaparticle »

我現在大概知道為什麼了。
我的情況應該是
1、那個錯誤訊息是因為我unmerge linux-headers所造成的
2、因為我把/var/cache/edb及/var/db/pkg殺掉,以致我要emerge任何package都要從patch-2.5.9開始。但是emerge patch-2.5.9,會出現上述的錯誤,然後宣告失敗
3、因為linux-headers被移除了,所以就算要emerge linux-headers 也要從patch-2.5.9開始

所以,我陷入了死結。

但是 USE="bootstrap" emerge gcc 時,會幫我安裝linux-headers,而且能成功。所以,就理論上而言,這樣就可以解決問題了。正常人做到這兒,就應該重建自己的edb及pkg才是。

但,我的事情就這麼完了嗎?
不,
我真的是手x,想把linux-headers換成linux26-headers。
因為linux-headers與linux26-headers會block住,所以我很直接地又把linux-headers給unmerge了,我還沒把edb及pkg兩個目錄弄回來。
所以我又回到了原來的樣子。

這次,我賭我自己沒有emerge patch-2.5.9也不會有問題,所以,我就 emerge inject patch-2.5.9,然後emerge linux26-headers。果然如我預期成功了。接下來我就是emerge patch-2.5.9,看來也沒有問題。
終於告一段落了。

這一次我學到的是:
1 沒事別殺edb及pkg
2 linux-header是compile很重要的東西,不能殺
3 如果發生問題USE="bootstrap" emerge gcc可以修復編譯環境大部份的問題。
失去網路的電腦==折斷翅膀的天使。

太難的我不會,不要問我。
Post Reply