方法一
源码包要求是使用 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. myeclipse10.0优化

    一.Myeclipse10修改字体  MyEclipse10是基于Eclipse3.7内核,但在Eclipse的Preferences-〉general-〉 Appearance->Colors ...

  2. Unity3d Shader开发(三)Pass(Alpha testing )

    透明度测试是阻止像素被写到屏幕的最后机会. 在最终渲染出的颜色被计算出来之后,可选择通过将颜色的透明度值和一个固定值比较.如果比较的结果失败,像素将不会被写到显示输出中. Syntax 语法 Alph ...

  3. 关于博客名“大话济公”的说明

    其实本来没打算起这个名字的,换了几个名字都被占用了(无语啊...).最近呢,我在研究<济公传>,对于济公的传说比较喜欢,尤其是这个任务,诙谐幽默,同时有时时刻刻在帮助有困难的群众,虽然是个 ...

  4. 读取Excel列内容

    http://blog.sina.com.cn/s/blog_6e001be701016yi8.html

  5. 如何登录mysql? cmd怎么连接mysql数据库

    Mysql开源数据库,任何人都可以下载安装使用.那么安装好的mysql如何登陆连接mysql数据库呢? 连接mysql数据库的几种方法 一 Mysql命令行连接 一般对于刚刚安装好的mysql,如果勾 ...

  6. UVALive 6609 Minimal Subarray Length (查找+构建排序数组)

    描述:给定n个整数元素,求出长度最小的一段连续元素,使得这段元素的和sum >= X. 对整个数组先求出sum[i],表示前i个元素的和,然后依次求出以a[i]为起点的,总和>= X的最小 ...

  7. Axure RP Pro 6.5修改站点地图,只显示需要的节点

    1. 原始页面   2. 原始代码(用记事本打开生成原型所在文件夹下的data\sitemap.js) var sitemap = (function() { var _ = function() { ...

  8. ANDROID_MARS学习笔记_S01原始版_023_MP3PLAYER003_播放mp3

    一.简介 1.在onListItemClick中实现点击条目时,跳转到PlayerActivity,mp3info通过Intent传给PlayerActivity 2.PlayerActivity通过 ...

  9. 释放SQL Server占用的内存

    由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存.所以很多时候,我们会发现运行Sql Server ...

  10. restful理解

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...