标签:
工具 apt-mirror
/etc/apt/mirror.list
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set base_path /data/upstream/
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set nthreads 20
set run_postmirror 0
############# end config ##############
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
/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 pbuilder gcc GNU C语言编译器 g++ GNU C++语言编译器 make GNU自动化构建工具 autotools autoconf automake 工具集 dpkg-dev 这个软件包包括了在解开、制作、上传Debian源文件包时需要用到的工具 diff/patch 源码补丁制作与补丁管理工具 fakeroot 模拟变成root用户,这在创建软件包的过程的一些部分是必要的 dh-make 提供了我们需要用到的 dh_make 命令,用于根据上游tarball生成我们deb包模板 gnupg 加密签名相关
apt-get source zip
cd zip-3.0
apt-get build-dep zip -y
…
dpkg-buildpackage -a
wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2
tar -xvpf tar-1.26.tar.bz2
cd tar-1.26
dh_make -e regulus_cn@163.com -f ../tar-1.26.tar.bz2
…
debian/rules
debian/changlog
dpkg-buildpackage -a
...
rules文件本质上是一个Makefile文件,这个Makefile文件定义了创建deb格式软件包的规则。打包工具按照rules文件指定的规则,完成编译,将软件安装到临时安装目录,清理编译目录等操作,并依据安装到临时目录的文件来生成deb格式的软件包。
rules文件一般会包含,”binary-arch”, ”binary-indep”, ”binary”,”build”, ”clean”, ”install”, 等targets。
一个最简单 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 make -j16 install: dh_auto_install clean: dh_auto_clean rm -rf debian/tar .PHONY: build clean binary-indep binary-arch binary install
dh是debhelper包中的命令序列,dh开头的命令主要用于简化rules文件的编写,把一些通用的重复的操作用perl命令来代替。
下面是一些dh命令和实际对应执行的操作的简要介绍
dh_auto_clean make distclean
dh_auto_configure ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var ...
dh_auto_build make
dh_auto_test make test
dh_auto_install make install DESTDIR=/path/to/package_version-revision/debian/package
以上的targets 如果需要 fakeroot 操作,则需要加上dh_testroot
许多软件安装前或安装后都需要进行一些设置工作,deb格式的软件安装过程执行的操作是由如下脚本来控制的
debian/preinst 安装前执行脚本
debian/postinst 安装后执行脚本
debian/prerm 卸载前执行脚本
debian/postrm 卸载后执行脚本
pbuilder create
pbuilder build *.dsc
https://www.debian.org/doc/manuals/maint-guide/index.en.html
https://www.debian.org/doc/debian-policy/
http://live-systems.org/build/
工具 reprepro 一个快速搭建deb软件仓库的工具。
创建配置文件,比如仓库目录在/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
/var/www/repo/
conf/
db/..
dists/..
pool/..
build-simple-cdd --conf ./custom.conf
标签:
原文地址:http://my.oschina.net/u/877567/blog/403284