方法一
源码包要求是使用 automake 进行编译管理的。
安装路径不能指定为 /usr/local 下的目录,否则生成 deb 包期间报错。
制作的工具是 dh-make ,如果没有安装,要先安装:sudo apt-get install dh-make

以 c-icap 为例:

# cd c-icap-0.2.2
# ./configure --enable-static --prefix=/opt/c-icap
# make dist

将会把源码打包为 c-icap-0.2.2.tar.gz
# mv c-icap-0.2.2.tar.gz ..
# dh_make -f ../c-icap-0.2.2.tar.gz

将会在本目录生成 debian 目录,里面是 deb 包的模板。
修改 debian 里的 rules 文件,在文件最后追加下列内容,文件末尾要以空行结束:

override_dh_auto_configure:
 ./configure --prefix=/opt/c-icap
--enable-static

意思是覆盖默认的 ./configure 行为。最后,生成 deb 安装包:

dpkg-buildpackage

deb 文件将被生成在父目录下。

方法二
生成 zlib 的 deb 安装包
由于 zlib 的源码包不支持 make dist 进行源码打包,所以步骤有所变更:
1. 生成模板:
# cd zlib-1.2.7
# dh_make -native

2. 修改 debian/rules 文件,覆盖默认的 ./configure 行为:
override_dh_auto_configure:
 ./configure --prefix=/opt/zlib
 
3. 生成 deb 安装包:
# dpkg-buildpackage

注意:为 squid 生成 deb 包时,需要安装 cppuint:
apt-get install libcppunit-dev

方法三
# apt-get install dh-make   make
fakeroot
下载源代码xxx2.0.12.tar.gz
建立一个目录xxx
把xxx2.0.12.tar.gz移动到xxx目录中
解压,进入xxx2.0.12目录
# dh_make -e -f ../xxx.2.0.12.tar.gz # -e参数表示打包者的email#
dpkg-buildpackage -rfakeroot -uc -b # -b代表建立二进制包,-uc代表 unsigned
changes,

#fakeroot debian/rules binary在上一级目录就会生成xxx.2.0.12.deb

方法四
进入源代码目录xxx2.0.12
# ./configure
# make
# checkinstall  
就在当前目录生成一个xxx2.0.12.deb包

注明:用该方法,目录格式要求是x.x.x
这样的版本格式,其中x为数字。

如果没有checkinstall命令,则 apt-get install checkinstall

源码生成deb包的更多相关文章

  1. 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...

  2. MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  3. eclipse导出附带源码的jar包

    最近在搞Andengine游戏开发,发现andengine的jar包可以直接点击查看源码,而其他项目的jar包却看不了,因此自己研究了下如何生成可以直接查看源码的jar包. 1.eclipse中点击项 ...

  4. MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  5. Eclipse使用总结——使用Eclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  6. [shiro学习笔记]第四节 使用源码生成Shiro的CHM格式的API文档

    版本号为1.2.3的shiro API chm个事故文档生成. 获取shiro源码 编译生成API文档 转换成chm格式 API 获取shiro源码 shiro官网: http://shiro.apa ...

  7. Android studio导入第三方类库源码以及jar包

    新建一个Android项目,项目结构如下: 1.添加第三方类库源码 首先将第三方类库考入与app同级的目录下: 之后,在build.gradle(Moudule:app)下添加编译代码:在seting ...

  8. 精尽Spring Boot源码分析 - Jar 包的启动实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  9. Android 如何在Eclipse中查看Android API源码 及 support包源码

    当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的.android系统是开源的,所以谷歌官方 ...

随机推荐

  1. Java中的异常处理机制的简单原理和应用

    异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间.地点.人物.情节等信息,可以用一个对象来表示,Java使用面向对象的方式 ...

  2. android开发两种退出程序方式(killProcess,System.exit)

    KillProcess: 在android中我们如果想要程序的进程结束可以这样写: android.os.Process.killProcess(android.os.Process.myPid()) ...

  3. poj 1631 Bridging signals (二分||DP||最长递增子序列)

    Bridging signals Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9234   Accepted: 5037 ...

  4. Ubuntu14.04下Unity桌面托盘图标显示问题

    本来想丰富一下功能,遂开始安装大开眼界:Ubuntu下10个厉害的Indicator小程序这里的Indicator小程序. 很不幸,在安装到indicator-multiload的时候,准备注销看一下 ...

  5. CELERY里,这个WARNING如何消除?

    原来命令行里有提示,保证用-n给与不同的名字即可. 比如: [program:celeryd]command=/usr/local/python27/bin/celery worker --app=s ...

  6. [Gauss]POJ1753 Flip Game

    题意:给4×4的棋盘的初始状态,b代表黑,w代表白. 要求变成全黑或者全白 最少需要几步. 简单的做法 可以暴搜 状压bfs 不再赘述 主要学习Gauss做法 同样是01方程组 用异或解 注意全黑或全 ...

  7. HDOJ 4893 Wow! Such Sequence!

    题意是这样的,给定一个n个元素的数组,初始值为0,3种操作: 1 k d将第k个数增加d: 2 l r 询问区间l...r范围内数之和: 3 l r 表示将区间l...r内的数变成离他最近的斐波那契数 ...

  8. easyui源码翻译1.32--NumberBox(数值输入框)

    前言 扩展自$.fn.validatebox.defaults.使用$.fn.numberbox.defaults重写默认值对象.下载该插件翻译源码 数值输入框是用来限制用户只能输入数值型数据的.他可 ...

  9. 雷军的B面:那些赔到血本无归的失败投资案例

    文/李红双 雷军投资方向偏多元化布局,从电商到房地产,从互联网社区到移动互联网,多方跨界的结果必然是有失有得.本文扒一扒“雷军系”中最惨烈的电商投资,凡客诚品融资5.3亿美元目前处于垮台边缘,乐淘融资 ...

  10. Vue.js 基础示例

    为 Vue.js 初学者写了一些简单的示例,在线示例 示例源码 了解更多请查看 Vue.js 官网文档:http://vuejs.org.cn/guide/