星期三, 十一月 22, 2006

emerge的一些技巧

1、升级用emerge -avuND world。(相当于--ask --verbose --update --deep --newuse world)。如果用-pv,之后还要再计算一次依赖关系。经常升级系统的话,就用-a就行了,看看有没有实在不能去升级的东西(一般没有),没有就 Yes,比较方便。

2、出现已安装的包被block的情况,可能无法升级,这时候检查一下升级的包的列表,应该是有一个新的包block了这个包,而这个新的包又是依赖于被block的包的升级版的。解决办法是emerge -C被block的包,之后update就能解决问题。

3、如果想有Debian/Ubuntu的Synaptic一类的直接一些的portage图形前端,可以试试emerge kentoo。Kentoo的用法比较简单,看看就会了。


4、显示emerge程序所用时间的软件:emerge genlop。之后就可以用genlop –t –l来显示之前emerge的软件都用了多少时间。Genlop还有很多其他的功能,可以man一下认真看看。

5、emerge一个软件的时候加-t (--tree)参数可以显示完整的依赖关系。

6、有软件出现“masked by missing keyword”的时候,可以自己在/etc/portage/package.keywords里面给它指定keyword,比如*或者~*。*的意思 是满足任何stable的keyword,~*意思是满足任何unstable的keyword。

7、有时候装一些大型软件,比如emerge gnome的时候,world里面只记录了gnome一个关键字,却没有记录相关的依赖关系,因此升级world的的时候,一些包可能得不到合理有效的维 护。解决办法是用regenworld这个命令来全面更新world的记录。Regenworld的原理是用你的emerge.log来重新生成 world记录(LiveCD安装的预套件似乎也不行?)。如果因为某些原因emerge.log也不能解决world的问题,可以参考这个贴子用 qkpg或者equery等gentoolkit提供的工具去解决:http://forums.gentoo.org/viewtopic.php?t =136627

8、比emerge –search更快的查询软件:eix。可以通过emerge eix来安装,用update-eix来更新查询的cache。运行eix-sync可以有emerge –sync同样的更新效果,还可以同步更新eix的cache记录。

9、几个常用的命令和文件的范例(一看就明白):
echo media-video/realone >> /etc/portage/package.unmask
echo net-p2p/bittorrent -X >> /etc/portage/package.use
echo sys-kernel/linux-headers -* >> /etc/portage/package.keywords
world的记录: /var/lib/portage/world
mask文件的记录:/etc/portage/package.mask
自安装的非portage软件记录:/etc/portage/profile/package.provided

0 意見: