gentoo -eav world相关问题及解决

原来有emerge --resume这个命令啊。。。。一个命令就可以搞掂了。
当gcc升级的时候,官方wiki建议我们把系统重新编译一遍,天啊,这个可是个大工程阿。好吧,wiki上说:为了系统的健壮性。咋就牺牲点吧。
可是一个系统有几百个包,(我的有差不多800个),难免有些编译时回出错。下面几个就是我出错的地方及解决办法。

1.splashutils提示/usr/lib/libbz2.a no such file or director
原因是编译bzip2的时候没有在use中加上static-libs.在/usr/portage/package.use中加入

2.vim编译中有perl5的出错
这个就找不多办法,把vim的use中去掉perl的支持

3.中间出错的解决方法,继续编译的方法
如果中间有错误,但是才编译了一些包,还有那些包没有编译。如果一个一个地看着emerge.log来排查,那就是个大工程了。
我的解决方法是:
先用sudo emerge -eav > all得到要编译的所有包.
然后用awk得到已经编译的包 sudo awk '{if(substr($6,0,3)==xxx) print $7}' /var/log/emerge.log  > alreadbuild,xxx指的是你所有的包数量
最后用diff来得到未编译的包diff all alreadbuid > build

你可能感兴趣的:(Gentoo)