|
|
发现论坛上这方面的文章比较少,灌水一篇,高手看了不要取笑我.
最近学习使用tex,需要用gbkfont和gbk2uni,找了很久才找到,又装了半天,gbk2uni还没有预编译的linux的版本,还要自己重新编译. 终于在公司的机器上算是搞好了.想起自己在gentoo里装什么都emerge的日子,真是觉得特别的不爽,为什么中国人自己做的东西,总是很难让人用的很爽呢(扯远啦,别拍我). 想到在家里的机器上又要重新搞一遍,头皮有点发麻.
于是查了相关的资料,发现其实在gentoo中扩充自己的ebuild是非常简单的,以前竟然不知道(孤陋寡闻,我拍),写在这里与诸君共享.
我在这里要写的是两个ebuild,一个是gbkfonts-bin,因为我只有gbkfonts的二进制文件,一个gbk2uni. 其实它们两个是不相干的,你可以单独尝试其中的任意一个,只是gbk2uni是用源代码编译的目标文件,gbkfonts直接是bin文件,差别不大.
一个ebuild是一个普通的脚本文件,脚本虽然很复杂, 写一个简单的ebuild确并不复杂,只是ebuild的文件名,文件存放的路径都有一些规定. ebuild的名字由四部分组成, 第一部分是套件的名称,比如gbkfonts-bin,这个名字其实是你自己可以随便取的,第二部分是版本号,也是随便取,比如1.0,第三部分是可选的 _alpha, _beta, _pre等,表明这个版本的状态,第四部分也是可有可无的Gentoo修订标记,比如r3,r4等.
所以我的gbkfonts-bin的ebuild文件名为:gbkfonts-bin-1.0.ebuild, gbk2uni的ebuild的文件名叫:gbk2uni-1.0.ebuild.
gbkfonts-bin-1.0.ebuild的内容如下:
- DESCRIPTION="A tool used to convert TTF font to the teTex format"
- SRC_URI="http://abcdefg.kmip.net/share/${P}.tar.gz"
- KEYWORDS="~x86"
- RESTRICT="nomirror"
- LICENSE="GPL-2"
- SLOT="0"
- S=${WORKDIR}/gbkfonts-bin
- src_install(){
- dobin go
- dobin appendconf
- dobin gbkfonts
- dobin gbkfont-inst
- }
复制代码
其中的${P}是预定义变量,运行的时候被翻译成Package名加版本号(gbkfonts-bin-1.0)下同.
dobin是预定义函数.
gbk2uni-1.0.ebuild的内容如下:
- DESCRIPTION="gbk2uni is a tool which make good CHI-INDEX in texpdf "
- SRC_URI="http://abcdefg.kmip.net/share/${P}.tar.gz"
- RESTRICT="nomirror"
- LICENSE="GPL-2"
- SLOT="0"
- KEYWORDS="~x86"
- src_install()
- {
- dobin gbk2uni
- }
复制代码
然后编辑/etc/make.conf,增加下面的一行:
- PORTDIR_OVERLAY=/usr/local/portage
复制代码
告诉emerge可以去/usr/local/portage里找package.
然后将gbkfonts-bin-1.0.ebuild放在/usr/local/portage/dev-tex/gbkfonts-bin/里(如果没有那个目录就新建那个目录),同样的,gbk2uni-1.0.ebuild放在/usr/local/portage/dev-tex/gbk2uni/目录里.
前面说过,ebuild文件的存放路径是有要求的,就是ebuild一定要放在package名字的那个目录里,所以gbkfonts-bin-1.0.ebuild一定要放在gbkfonts-bin目录里,而gbkfonts-bin要位于某一个已知的class的目录里,你可以选择dev-tex,也可以选择不想关的app-i18n,或者别的什么,但是一定要是当前的/usr/portage里已知的分类. 所以这个路径是必须的,不能是任意的.
如果你正在跟着一步一步的做,STOP,下面的步骤你没有办法跟着做了,因为我在上面的ebuild里面写的服务器的路径是随便写的,实际上并没有那样的文件,如果你要跟着做,可以先从附件中拆离gbkfonts-bin-1.0.tar.gz和gbk2uni-1.0.tar.gz这两个文件,将其放在usr/portage/distfiles/文件夹里,然后再继续.
OK,然后我们进入/usr/local/portage/dev-tex/gbkfonts-bin/目录中,执行下面的命令:
- ebuild gbkfonts-bin-1.0.ebuild digest
复制代码
进入/usr/local/portage/dev-tex/gbk2uni/目录里,执行:
- ebuild gbk2uni-1.0.ebuild digest
复制代码
现在,可以测试自己的成果了,运行 emerge -p gbkfonts-bin,检查输出的结果,运行emerge gbkfonts-bin,检查输出结果.
运行 emerge -p gbk2uni,检查输出的结果,运行emerge gbk2uni,检查输出结果.
如果你的ebuild里面的文件放在可以公开的公共服务器上,那么就赶紧共享你的ebuild文件吧,你辛苦了半天,可以省去无数人无数个半天的时间.
ebuild文件里面的语句含义都比较明显,我在这里就不罗嗦了,有兴趣的朋友可以参考gentoo的ebuild开发人员指南:http://www.gentoo.org/doc/zh_tw/gentoo-howto.xml
又附: Sorry,说我上传的附件太大(300多K不算大吧),不过总算gbk2uni的附件满足要求,另外一个大家自己去网上找相关的文件自己拼装吧. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|