最近,项目要发布了,想做一个deb安装包,这样就可以只给用户一个安装包就可以了,不用拿代码过去编译。找了一些资料,发现还是checkinstall生成deb包的方法是最方便的。
方法一:checkinstall
直接在源码目录下面调用checkinstall -D就可以生成安装包。
下面是我写的一个脚本:
#!/bin/sh
cd xxx-1.0
make distclean
./configure
make
checkinstall -D -y --install=no --pkgversion=1.0
--maintainer=xxx@yyy.com
--requires=libc6,libnessus2,libssl0.9.8,bison,libxml2,libcurl3,libinotifytools0
mv -f xxx_1.0-1_i386.deb ..
cd ..
注意:--requires指定依赖的包,这里需要注意两个包的名字之间没有空格。
方法二:dpkg -b
当然,还有一种是写一个control文件,创建一个目录,按照安装的路径分别拷贝到目录中:
dpkg -b directory packagename.deb
来生成安装包。
方法三:dh_make和dpkg-buildpackage
直接在源码的目录里面运行dh_make,将得到一个修改后的源代码,原来的代码被归档到服目录的一个*.orig.tar.gz中;这个时候再运行dpkg-buildpackage生成安装包。
参考:
http://www.in-life.idv.tw/index.php?/archives/374-c-checkinstall-ae-make-install.html
http://grey.colorado.edu/emergent/index.php/Check_Install
http://www.jeast.net/student/wenheping/archives/2008/5230.html
http://grin.is-programmer.com/show/2639.html