2010-07-07

在Gentoo里调试新软件包

最近又开始研究web测试的技术,迷上了西门子开发的robot framework。不过服务器用的Gentoo上还没有这东西,只好自力更生。所以先记录一下给Gentoo添加新软件包的过程,下次也好照抄,以后再说robot framework有多好。

Gentoo的包管理器叫做Portage,描述文件叫Portfile。现在的portage很讲究目录结构,就是Gentoo里的PORTDIR structure,所谓category。robot framework是用python开发的,照例是在dev-python下的某个目录中。没想到的是,现在ebuild对目录的检查很严格,即使在调试时安装本地的portfile也要遵循该结构:
mkdir -p dev-python/robotframework
mv robotframework-2.5.ebuild dev-python/robotframework/
cd dev-python/robotframework


然后利用底层的ebuild包管理命令,对本地包生成数字摘要、测试安装和部署:
sudo ebuild robotframework-2.5.ebuild digest
sudo ebuild robotframework-2.5.ebuild install
sudo ebuild robotframework-2.5.ebuild qmerge

digest是最近新增加的指令?有这个命令省事多了,调试起来很happy。

调试过程需要反复修改,得删除已经用qmerge安装到系统目录中的文件,以及portfile的缓存:
sudo emerge -C robotframework-2.5
sudo rm -rf /var/tmp/portage/dev-python/robotframework-2.5/


把dev-python/robotframework和dev-python/robotframework-seleniumlibrary向Gentoo提交了,不知道审核要多久。

完。

2 条评论:

Qiangning Hong 说...

ebuild可以后面跟多个命令参数的:
sudo ebuild robotframework-2.5.ebuild digest install qmerge

如果调试ebuild文件的话,install后去看 $S/images/ 下的文件对不对就行了,不一定非要 qmerge

清除$S 可以直接用 ebuild robotframework-2.5.ebuild clean

所以我一般是用 ebuild xxx.ebuild digest clean install

xyb 说...

一次执行多个命令好,学到了,谢谢!