• 19
  • Jan

一般情况下,我们制作deb包,都是在比较规范的软件包的基础上做的,比如这个软件包可以通过“./configure; make; make install”来安装,或者可以通过“python setup.py install”来安装。

但是在特殊情况下,要打包一个二进制的软件包,也要让产生的目标deb比较规范,要怎么做呢?

我稍微研究一下,在最小工作量的原则上,用debhelper+rules完成了这一任务。

debhelper,也就是一堆以“dh_”开头的脚本(主要是Perl),将会方便地处理deb打包过程中的各种任务。

比如:dh_md5sums,就是把所安装的文件产生一个md5校验,确保软件包的完整性。

所以,如果仅仅是打包一堆二进制文件的集合,用debhelper的几个脚本就可以完成任务了。

首先,就是确定在“debian/control”加入在在debhelper的依赖支持,比如:Build-Depends: debhelper (>= 7)

接着,就按平常写debian目录的形式,填好control,准备好changelog,copyright等文件。

关键是rules文件,因为是二进制,所以把“/usr/share/doc/debhelper/examples/rules.arch”复制为“debian/rules”,算是个样本了。

下面就是关键的“debian/install”文件了,因为是纯二进制安装,“install”才是重点,把需要安装目录与文件依次写入即可。

比如:

go /usr/bin:把go这个二进制文件安装至/usr/bin

或者

usr /:把usr这个目录安装至根目录。

现在,再回到debian/rules,在“binary-arch”这个区块,打开“dh_install”,再根据需要决定要不要开启“dh_shlibdeps”,用于自动处理库信赖。

最后,通过“dpkg-buildpackage -b”,就能build好一个非常规范的deb软件包喽。

Tags: Debian, Package, deb.

» You can leave a comment.

1 Pingbacks

7 Comments

  1. hanmiao

    发现博主的网站的RSS输出自带广告,不知道能不能设置下,把它带的广告给去掉,本来挺好的文章,让标题下方的广告插一脚,感觉很不舒服,谢谢!

    • 不知道你如何处理在其他地方看到的广告(如Gmail上方,Google搜索页右侧,及其他数不胜数的带广告的网站),如果本博的RSS广告让你觉得很不舒服,我只能感到很遗憾……

  2. Dig


    借地方插句话: http://feed.feedsky.com/imtx 还能用吗?

Leave a Comment