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之后,都会生产相应的初始化文件,用户可以根据自己对包的需要进行修改,这里不在详述

如何在Debian和Ubuntu下重新打包Deb文件

Copy from https://linux.cn/article-2428-1.html 有时候你在生活中会碰到这样的问题,你想要修改.deb文件的部分内容,然后重新打包。不过只...
  • dash23
  • dash23
  • 2017年08月07日 10:46
  • 51

debian上使用dpkg -b打包

用dpkg命令制作deb包方法总结如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。首先了解一下deb包的文件结构:deb 软件包里面的结构:它具...

手动打包sun java jdk [Installing the latest JDK on Debian by creating a .deb package from Sun binaries]

Installing the latest JDK on Debian by creating a .deb package from Sun binaries Normally we do...
  • sudolee
  • sudolee
  • 2012年10月22日 13:55
  • 935

Ubuntu Debian(NGINX/PHP/MYSQL)快速配置工具LNMP云安装

Ubuntu Debian(NGINX/PHP/MYSQL)快速配置工具LNMP云安装    Ubuntu Debian云安装基于debian apt-get 快速配置安装nginx php mys...

debian (lenny) 下编程工具vim+ctags+taglist的配置

一. 安装和配置 1. 安装 Ctags  apt-get install exuberant-ctags 2. vim 系统自带 3. 安装 taglist 3.1 下载 taglist....

Debian的软件包管理工具命令 (dpkg,apt-get)详解

本文转载于:http://blogold.chinaunix.net/u3/104182/showart_2221683.html ps:很有用!另外题一下,apt的sources.lst软件源选择...

使用apt-mirror工具创Debian建源镜像

apt-mirror工具能够将官方镜像下载到本地,并保证目录结构与其一致,但是不能对镜像仓库进行修改。如果想要下载并修改镜像仓库,需要使用reprepro工具。 【安装】 首先安装apt-mi...

Debian系统备份成iso镜像的工具安装启动

介绍文档 http://blog.csdn.net/tustzhoujian/article/details/53390145 https://zhidao.baidu.com/question/...

Debian软件包管理工具apt命令清单

apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管理的命令行平台。在这个平台上使用更丰富的子命令,完成具体的管理任务。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:debian打包工具
举报原因:
原因补充:

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