LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 848|回复: 5

搜索发现的一个小技巧:emerge“断点续传”

[复制链接]
发表于 2009-1-3 17:49:14 | 显示全部楼层 |阅读模式
怎么继续前次的ebuild操作?
比如,emerge到一半,发现一个错误,你google/去论坛搜了一圈,找出了解决办法,难道非要从头开始么? 解决办法其实很多了,说几个最常用的
a. 使用ccache
每个人都应该把它打开
emerge ccache之后,在/etc/make.conf里面
找到FEATURES设置,加上
FEATURES="ccache"
以及CCACHE_SIZE="2G"
默认好像是2G,我觉得如果硬盘空间足够,多多益善。
下次emerge的时候,你会发现编译的速度快了很多。这样间接起到了中断继续的效果。个人推荐这个方法,最简单。

b.继续make
emerge也就是一个用源码编译/安装的过程,而gnu make系统也保证了它实际上是可以"断点续传"的。而gentoo的portage系统在每次开始新的emerge的时候,会自己删掉以前的临时目录,重新生成,造成中断的emerge过程不可恢复。
你只要进入到临时目录,一般是
/var/tmp/portage/ebuild名称/work/ebuild名称/
下继续make,然后make install就行
不用怀疑,这样已经装好了。。但是,这样安装的软件包不会被记载在portage的world file里面。。所以,更优雅的办法是
0. 找到ebuild文件,比如abc-1.0.1.ebuild
1. ebuild abc-1.0.1.ebuild compile
2. ebuild abc-1.0.1.ebuild install
3. ebuild abc-1.0.1.ebuild qmerge
发表于 2009-1-3 17:51:23 | 显示全部楼层
emerge --keep-going **
回复 支持 反对

使用道具 举报

发表于 2009-1-3 18:26:30 | 显示全部楼层
Post by Hosanna;1933432
emerge --keep-going **


这和楼主说的不是一回事吧???
回复 支持 反对

使用道具 举报

发表于 2009-1-3 18:37:31 | 显示全部楼层
you need FEATURES=keepwork
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-3 18:49:09 | 显示全部楼层
我下午编译kdelibs-3.5.10的时候,由于改变了字体设置,自动退出了X,而此时已经编译了近一个小时了。我可不想从头开始,于是开始google,就发现了这个小技巧。
--keep-going似乎是编译过程中呼略因为错误而中断编译的软件包,继续下一个。
回复 支持 反对

使用道具 举报

发表于 2009-1-3 19:02:39 | 显示全部楼层
Post by pxbfeiniao;1933461
我下午编译kdelibs-3.5.10的时候,由于改变了字体设置,自动退出了X,而此时已经编译了近一个小时了。我可不想从头开始


你应该用screen
用了screen,emerge根本就不会断,你也就没有必要重新开始
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表