源码生成deb包
方法一
源码包要求是使用 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包的更多相关文章
- 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...
- MyEclipse使用总结——使用MyEclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- eclipse导出附带源码的jar包
最近在搞Andengine游戏开发,发现andengine的jar包可以直接点击查看源码,而其他项目的jar包却看不了,因此自己研究了下如何生成可以直接查看源码的jar包. 1.eclipse中点击项 ...
- MyEclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- Eclipse使用总结——使用Eclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- [shiro学习笔记]第四节 使用源码生成Shiro的CHM格式的API文档
版本号为1.2.3的shiro API chm个事故文档生成. 获取shiro源码 编译生成API文档 转换成chm格式 API 获取shiro源码 shiro官网: http://shiro.apa ...
- Android studio导入第三方类库源码以及jar包
新建一个Android项目,项目结构如下: 1.添加第三方类库源码 首先将第三方类库考入与app同级的目录下: 之后,在build.gradle(Moudule:app)下添加编译代码:在seting ...
- 精尽Spring Boot源码分析 - Jar 包的启动实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- Android 如何在Eclipse中查看Android API源码 及 support包源码
当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的.android系统是开源的,所以谷歌官方 ...
随机推荐
- Java中的异常处理机制的简单原理和应用
异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间.地点.人物.情节等信息,可以用一个对象来表示,Java使用面向对象的方式 ...
- android开发两种退出程序方式(killProcess,System.exit)
KillProcess: 在android中我们如果想要程序的进程结束可以这样写: android.os.Process.killProcess(android.os.Process.myPid()) ...
- poj 1631 Bridging signals (二分||DP||最长递增子序列)
Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9234 Accepted: 5037 ...
- Ubuntu14.04下Unity桌面托盘图标显示问题
本来想丰富一下功能,遂开始安装大开眼界:Ubuntu下10个厉害的Indicator小程序这里的Indicator小程序. 很不幸,在安装到indicator-multiload的时候,准备注销看一下 ...
- CELERY里,这个WARNING如何消除?
原来命令行里有提示,保证用-n给与不同的名字即可. 比如: [program:celeryd]command=/usr/local/python27/bin/celery worker --app=s ...
- [Gauss]POJ1753 Flip Game
题意:给4×4的棋盘的初始状态,b代表黑,w代表白. 要求变成全黑或者全白 最少需要几步. 简单的做法 可以暴搜 状压bfs 不再赘述 主要学习Gauss做法 同样是01方程组 用异或解 注意全黑或全 ...
- HDOJ 4893 Wow! Such Sequence!
题意是这样的,给定一个n个元素的数组,初始值为0,3种操作: 1 k d将第k个数增加d: 2 l r 询问区间l...r范围内数之和: 3 l r 表示将区间l...r内的数变成离他最近的斐波那契数 ...
- easyui源码翻译1.32--NumberBox(数值输入框)
前言 扩展自$.fn.validatebox.defaults.使用$.fn.numberbox.defaults重写默认值对象.下载该插件翻译源码 数值输入框是用来限制用户只能输入数值型数据的.他可 ...
- 雷军的B面:那些赔到血本无归的失败投资案例
文/李红双 雷军投资方向偏多元化布局,从电商到房地产,从互联网社区到移动互联网,多方跨界的结果必然是有失有得.本文扒一扒“雷军系”中最惨烈的电商投资,凡客诚品融资5.3亿美元目前处于垮台边缘,乐淘融资 ...
- Vue.js 基础示例
为 Vue.js 初学者写了一些简单的示例,在线示例 示例源码 了解更多请查看 Vue.js 官网文档:http://vuejs.org.cn/guide/