|
|
原文地址http://xiaolou.3322.org/myblog.html
主要是给大家说说我善后处理的经验,呵呵。
昨天很早就起来emerge sync了一把,然后ACCEPT_KEYWORDS='~x86'emerge-p xorg-x11 突然发现可以emerge xorg-7.0了,很是高兴,于是立刻升级,还去网上向大家报告了一下,可是大家都回贴说不行,我就奇怪,为什么我可以呢。。。。惨了──上次实验那个http://gentoo-wiki.com/HOWTO_Modular_Xorg
Note: This list will probably change at least once a week, so theres a little script you can run to get the most recent list. Heres a line I have in my ~/.bashrc.
function fixmask { perl -e"$/=\"\\n\\n\";/${1}/&&print while<>" /usr/portage/profiles/package.mask ; }
( after inserting this you'll need to create a new bash shell in order to make it visible to bash )
In order to get this whole block, I execute
fixmask "Modularized X"
And to unmask it all
fixmask "Modularized X" >> /etc/portage/package.unmask
This script may be used for any other thing that has big clusters of unmasking required
忘了清除package.unmusk了。。。。而且在我安装的时候,我自作聪明的偷了懒──我直接emerge -C xorg-x11删除了xorg-x11-6.8.2,然后emerge --depclean world,本来打算就不用理那些block的东东,可是最后就出了问题。互相的依赖关系纠缠不清,一会多这个,一会少那个,这个出了错,那个编译又不成功。简言之,一片狼籍。
每次和朋友出去吃饭也都是一片狼籍,感觉也挺爽的,头一次发现这“一片狼籍”这么让人头痛──尤其是在正在等着用的系统中发现的时候。
当时我真的是眼前一片漆黑,呵呵。怎么办?继续安装7.0已经不现实了,可是怎么返回6.8我也不知道。重装系统?大哥,拜托,我用的是 Gentoo啊。那又得20小时。只好想办法返回6.8吧,可是直接emerge -p xorg-x11,发现只安装6.8,卸载7.0.没有任何其他相关的依赖包。这样用小脚趾想也知道不行啊.7.0是模块化的,6.8可是老大一堆的。怎么也凑不到一起去啊。
灵机一动,我把package.unmask改成了一个可执行文件,然后编辑它,自动卸载上边出现的所有包(都是7.0依赖的,我原本的系统没有mask 的包)。卸载完了,清爽了许多,然后趁热打铁,emerge -ep xorg-x11 >>1.list ,emerge -ep system >>2.list ,然后比较一下,在1.list中删除了2.list中的ebuild,因为这些是system中的,应该和6.8没什么关系,然后把1中剩余的全都 emerge。。。。。。
出去吃饭。自己都奇怪,一点都不担心,呵呵好象胸有成“棍”一样吃的高兴。。。然后玩。。。。。
很晚才回来。上天保佑我新年快乐,没有出什么问题就编译完成了(废话,上天要是保佑你,何必让你emerge 7.0失败呢?)不要你管,反正我有上天保佑,我吉人自有天相,逢凶化吉,遇难成祥。。。不说这个,然后我就startx....
闪了一下,乐极生悲,又失败了!!!!我哭!幸好还没哭出来我就发现原来是nvidia-kernel版本不对。。。。汗。
装完了一切OK。
总结经验如下
1,拿自己的系统实验完了,记得改回原状。(别人的除外 :p)
2,emerge --depclean并不可靠。ebuild之间的依赖关系比较复杂,并不是绝对可靠。比如我就曾经在安装过程中遇到过a所依赖的b没有装,导致安装失败的情况,只要先安装了b,就一切顺利。甚至有a装完运行的时候,才发现需要b的情况。
3,失败总是难免的,不过一般情况都有办法复原。emerge -e就是一个不错的东东。呵呵。
4,最后一点,也是极其重要的一点经验就是,这个可是我有着深刻的切身体会的经验啊,大家一定要注意,不要在2006.01.01那天安装xorg-x11-7.0.0啊。 |
|