debian打包工具

转载 2011年01月18日 08:50:00

经过一个星期的调研,对Debian源码包和二进制包的一般结构了解的基础上,对源码文件进行了打包。

这里总结一下打包的工具:

debhelper

debhelper最初是由Joey Hess写的一套程序用于帮助Debian packager 编写rules files。Rules files 是一个makefile文件,包含建立和创建Debian包的指令。

 

dh_make 

dh_make与debhelper是相关的,但不是debhelper的一部分,dh_make复制所有用于建立debian包的模版到一个source directory中,这些模版是根据用户提供的信息和对源代码的粗略检查而自动定制的。运行完dh_make之后,开发者还要对大部分模板文件进行修改才能建立一个deb包。

 

CDBS

CDBS是Common Debian Build System的简写,用于创建Debian packages。CDBS包含很多makefile片段,这些片段可以直接被放在rules files中。

 

rules files

在创建debian包的时候,rules files是必须使用的。rules files本质上是一个makefile 文件,这个makefile文件包含创建一个debian package的rules。rules files主要用于完成诸如,编译软件,安装临时目录,通过临时安装的软件来建立debian package,建立完毕后清空临时文件等。当然,这样有大量的代码需要去完成,但是大多数代码将被复制在rules files中。即使使用了debhelper,这个过程依然无法避免。这种做法也会降低rules files的可读性并使他们难于维护。

 

dh 

参考《Not your Grandpa’s Debhelper》by Joey Hess

#!/usr/bin/make -f

build:

dh build

clean:

dh clean

binary-arch:

dh binary-arch

binary-indep:

dh binary-indep

binary:

dh binary

 

这些makefile片段可以写成

#!/usr/bin/make -f

%:

dh $@

 

现在问题是dh到底做了什么呢?

dh是debhelper的命令序列,是debhelper的关键部分,它会按照debian/rules文件(即上面提到的rules files)中的目标(这些目标包括”build”, ”clean”, ”install”, ”binary-arch”, ”binary-indep”,”binary”等,但用dh的话,是dh_加上目标名,作为dh的target)进行执行。

 

在dh开头的命令集中,有一类是dh_auto_*的命令:

dh_auto_configure → ./configure –prefix=/usr

dh_auto_build → make

dh_auto_test → make test || check

dh_auto_install → make install

du_auto_clean → make distclean || clean

 

在通常情况下,dh_auto的工作是这样的:

./configure –prefix=/usr

make

build:

dh build

 

而在非正常情况下,可能需要你对个别目标进行修改,你可以在命令前加override_对其进行覆盖,例如你需要对dh_auto_build进行修改:

修改前

dh_auto_build:

make

修改后

override_dh_auto_build:

make (此处加上你要添加的选项)

 

我在打包的过程中,主要使用了dh_make和并修改了建包过程中调用到的rules文件,其他必要的文件比如control、copyright、changelog以及一些可选的配置文件{post|pre}{inst|rm}等这里并未涉及,但在dh_make之后,都会生产相应的初始化文件,用户可以根据自己对包的需要进行修改,这里不在详述

Linux源码打包工具CheckInstall

Checkinstall是能够通过源码,自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall生成的安装包,可以通过linux的各种软件包软件包管理器来管理...
  • talkxin
  • talkxin
  • 2016年02月14日 11:11
  • 1302

java打包工具:Ant工具

Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。目前的最新版本为:Ant 1.9.0[1]。 既然我们已经有了make, g...
  • xyw591238
  • xyw591238
  • 2016年07月15日 09:35
  • 1662

不用VS自带的打包工具,不用InstallShield。用C#自己制作安装程序

用 C#编程的朋友们,你们是否想过用代码写一个自己开发出来的软件的安装程序呢?你们是否厌烦了 Visual Studio 自带的发布功能的枯燥无味呢?你们是否觉得InstallShield 的界面过于...
  • Linux7985
  • Linux7985
  • 2016年01月22日 17:56
  • 6111

Linux 下打包工具

tar命令 tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile ...
  • flyingstarwb
  • flyingstarwb
  • 2007年12月20日 16:56
  • 2758

开源应用程序打包工具

1. NSIS(需要NSIS Edit配合) http://nsis.sourceforge.net/Main_Page 如:迅雷,QQ,暴风影音都是用它用打包的 2. Inno Setup ...
  • zhenyongyuan123
  • zhenyongyuan123
  • 2013年04月07日 16:03
  • 2475

Android多种多渠道打包工具对比

多渠道打包只有在Android开发中才会有,iOS中直接放在AppStore。 而渠道也是Android开发中一个比较重要的环节,其主要作用就是方便统计、标记。根据不同的渠道加载不同的数据。 目前市...
  • baidu_33396702
  • baidu_33396702
  • 2016年07月28日 10:58
  • 1630

友盟apk批量打包工具 使用图文教材

友盟渠道打包工具是Android手机安装包生成工具,可以实现apk文件的批量打包。 友盟渠道打包工具使用教程:...
  • PennyScarlett
  • PennyScarlett
  • 2014年08月14日 16:27
  • 697

自制的android多渠道应用打包工具--RyApkTool(1)

关于多渠道的打包,网上流行的ant脚本或者perl制作的工具,我很笨,没搞起来。于是花了一个晚上,自制了多渠道打包工具,我采用了一种自认为更简单的方式来实现。觉得对你有用的话帮忙顶下,谢谢~~ 转载请...
  • rydiy
  • rydiy
  • 2012年08月23日 22:53
  • 10406

java程序打包方法最强集合

前几天一个朋友拜托我写一个分析很多散点的程序。由于处理的点数量很大(上万),而且每个点的显示都涉及图片的旋转,所以我准备用java的swing来处理。好久没写过java客户端程序了,总结一下java客...
  • jinzheng069
  • jinzheng069
  • 2014年03月21日 22:18
  • 3088

【软件打包】Advanced Installer -- Windows的安装包制作工具【1】

Advanced Installer 是一款功能强大、可生成符合MS Windows 认证的Windows Installer 的MSI 安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面...
  • aoshilang2249
  • aoshilang2249
  • 2015年04月15日 20:52
  • 3652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:debian打包工具
举报原因:
原因补充:

(最多只允许输入30个字)