deb仓库同步工具 apt-mirror 基本配置:/etc/apt/mirror.list
结合crond 每天自动同步/etc/cron.d/apt-mirror 0 1 * * * root /usr/bin/apt-mirror &> /data/log/cron.log & 软件包编译apt-get install build-essential dpkg-dev dh-make debhelper dpkg-sign gcc GNU C语言编译器 g++ GNU C++语言编译器 make GNU自动化构建工具 autotools autoconf automake 工具集 dpkg-dev 这个软件包包括了在解开、制作、上传Debian源文件包时需要用到的工具 diff/patch 源码补丁制作与补丁管理工具 fakeroot 模拟变成root用户,这在创建软件包的过程的一些部分是必要的 dh-make 提供了我们需要用到的 dh_make 命令,用于根据上游tarball生成我们deb包模板 debhelper 包含dh开头的命令集合,主要用于简化rules文件的编写,把一些通用,重复的操作用perl命令来代替。 gnupg 加密签名相关 dpkg-sign deb包签名工具 修改来自上游仓库的软件包简要示例
从软件源码包开始制作deb包
debian目录的重要文件
更多细节参考 * [ https://www./doc/manuals/maint-guide/index.en.html ] debian/rules 解析rules文件本质上是一个Makefile文件,这个Makefile文件定义了创建deb格式软件包的规则。打包工具按照rules文件指定的规则,完成编译,将软件安装到临时安装目录 debiani/tmpdir,清理编译目录等操作,并依据安装到临时目录的文件来生成deb格式的软件包。 rules文件一般会包含,”binary-arch”, ”binary-indep”, ”binary”,”build”, ”clean”, ”install”, 等targets。 从源码安装开始基于 autotools 制作的源码包编译安装,通常为如下步骤
创建一个简单的 debian/rules#!/usr/bin/make -f binary:build install dh_gencontrol dh_md5sums dh_builddeb binary-indep: binary binary-arch: binary build: ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var make -j16 install: make install DSEDIR=./debian/tmpdir/ clean: make clean rm -rf debian/tmpdir/ 全部操作 使用 debhelper 命令集来简化 debian/rules 的编写#!/usr/bin/make -f binary:build install dh_gencontrol dh_md5sums dh_builddeb binary-indep: binary binary-arch: binary build: dh_auto_configure dh_auto_build install: dh_auto_install clean: dh_auto_clean 使用默认的rules在新版本中,dh_make 会使用默认的dh $@ 指令 来进一步简化 rules 文件的编写 %: dh $@ 使用 dh $@时,dh_make会执行一系列的默认的dh_命令,具体请参考 [ http://www./doc/manuals/maint-guide/dreq.zh-cn.html#defaultrules ] 这一系列的默认的dh命令,不能满足所有软件包的编译安装,我们可以通过 override_来重新定义 dh命令,示例如下: %: dh $@ --with python2 override_dh_install: python setup.py install --root=$(CURDIR)/debian/timelib --prefix=/usr --install-layout=deb override_dh_auto_clean: dh_auto_clean rm -rf $(CURDIR)/debian/timelib dh命令简要解析dh是debhelper包中的命令序列,dh开头的命令主要用于简化rules文件的编写,把一些通用的重复的操作用perl命令来代替。 下面是一些dh命令和实际对应执行的操作的简要介绍
deb包的执行脚本许多软件安装前或安装后都需要进行一些设置工作,deb格式的软件安装过程执行的操作是由如下脚本来控制的
deb源代码包新格式
deb 签名生成签名所需的密钥
用户需要将这个公钥key.pub下载添加到系统的keyring中,就可以使用对应签过名的软件包 给deb软件包签名给软件包签名指令如下,需要输入之前生成公钥时的密码,:
参考文档 [ http://blog.csdn.net/michaelwubo/article/details/keyid ] 其他进阶工具
介绍下pbuilder 的基本用法
参考文档:http:///build/ 仓库管理工具 reprepro 一个快速搭建deb软件仓库的工具。 安装 apt-get install reprepro -y使用创建配置文件,比如仓库目录在/var/www/repo 为例 cd /var/www/repo/ cat > conf/distributions << "EOF" Origin: regulus Label: wheezy Codename: wheezy Architectures: i386 amd64 source Components: main Version: 2015.4.17 Description: regulus.intra.repo 2015.4.17 EOF 更新仓库reprepro includedeb wheezy pkgdir/*.deb reprepro includedsc wheezy pkgdir/*.dsc
创建ISO
|
|