我从来都是用schroot + pbuilder + Xephyr 的,一般我机器上总会有好几个chroot和pbuilder,程序的测试直接用Xephyr跑. <div><br><div class="gmail_quote">2010/10/2 LI Daobing <span dir="ltr">&lt;<a href="mailto:lidaobing@gmail.com">lidaobing@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">From: <a href="http://www.cnblogs.com/lidaobing/archive/2010/10/02/1841349.html" target="_blank">http://www.cnblogs.com/lidaobing/archive/2010/10/02/1841349.html</a><br>


0. 原因<br>
尽管你是在 Ubuntu 下工作,但由于种种原因,你还是需要给 Debian<br>
做打包工作,如果你不想你做的包因为一些简单的错误被退回,比如无法在 Debian 下编译,没有处理好 lintian 警告,那么最好在<br>
Ubuntu 下给 Debian 打包的环境,步骤如下所示:<br>
<br>
1. 安装 approx<br>
打包时经常需要反复下载一些包, 如果你的网速不够快,建议安装 approx 透明代理, 可以缓存大部分包。安装方法: &quot;sudo<br>
apt-get install approx&quot;, 然后修改配置文件 /etc/approx/approx.conf 为<br>
ubuntu <a href="http://cn.archive.ubuntu.com/ubuntu" target="_blank">http://cn.archive.ubuntu.com/ubuntu</a><br>
debian <a href="http://mirrors.163.com/debian" target="_blank">http://mirrors.163.com/debian</a><br>
<br>
2. 修改 /etc/apt/sources.list, 修改为如下的内容<br>
deb <a href="http://127.0.0.1:9999/ubuntu" target="_blank">http://127.0.0.1:9999/ubuntu</a> lucid main restricted universe multiverse<br>
deb <a href="http://127.0.0.1:9999/ubuntu" target="_blank">http://127.0.0.1:9999/ubuntu</a> lucid-security main restricted<br>
universe multiverse<br>
deb <a href="http://127.0.0.1:9999/ubuntu" target="_blank">http://127.0.0.1:9999/ubuntu</a> lucid-updates main restricted<br>
universe multiverse<br>
<br>
3. 安装工具包, 运行 &quot;sudo apt-get install ubuntu-dev-tools cowbuilder&quot;<br>
<br>
4. 准备 cowbuilder-sid<br>
$ sudo cp /usr/bin/pbuilder-dist /usr/bin/cowbuilder-sid<br>
$ sudo sed -ie &#39;s,<a href="ftp://ftp.debian.org/debian,http://127.0.0.1:9999/debian," target="_blank">ftp://ftp.debian.org/debian,http://127.0.0.1:9999/debian,</a>&#39;<br>
/usr/bin/cowbuilder-sid<br>
<br>
5. 准备开发环境<br>
$ sudo mkdir /var/cache/pbuilder-dist/sid_result<br>
$ cowbuilder-sid create<br>
<br>
6. 开始开发<br>
$ dget <a href="http://ftp.debian.org/debian/pool/main/h/hello/hello_2.6-1.dsc" target="_blank">http://ftp.debian.org/debian/pool/main/h/hello/hello_2.6-1.dsc</a><br>
$ dpkg-source -x hello_2.6-1.dsc<br>
$ cd hello-2.6<br>
$ # 修改 debian 包,版本改为 2.6-2<br>
$ debuild -S -sa<br>
$ cd ..<br>
$ cowbuilder-sid hello_2.6-2.dsc # 使用 sid 环境进行编译<br>
<br>
7. 检查<br>
7.1 安装最新版的 lintian<br>
Ubuntu 自带的 lintian 版本不够新,需要从 Debian 安装最新版本<br>
$ # 到 <a href="http://ftp.us.debian.org/debian/pool/main/l/lintian/" target="_blank">http://ftp.us.debian.org/debian/pool/main/l/lintian/</a> 下载最新版本的 lintian<br>
$ wget <a href="http://ftp.us.debian.org/debian/pool/main/l/lintian/lintian_2.4.3_all.deb" target="_blank">http://ftp.us.debian.org/debian/pool/main/l/lintian/lintian_2.4.3_all.deb</a><br>
$ sudo dpkg -i lintian_2.4.3_all.deb<br>
$ sudo apt-get -f install<br>
<br>
7.2 对包做最后的检查<br>
$ cd /var/cache/pbuilder-dist/sid_result<br>
$ lintian -i hello_2.6-2_amd64.changes<br>
$ #如果上一步出现错误,则继续修正<br>
$ debsign hello_2.6-2_amd64.changes #签名<br>
<br>
8. 上传<br>
根据 <a href="http://mentors.debian.net/cgi-bin/maintainer-intro" target="_blank">http://mentors.debian.net/cgi-bin/maintainer-intro</a> 的介绍准备好<br>
<a href="http://mentors.debian.net" target="_blank">mentors.debian.net</a> 的上传的环境, 然后用如下的命令上传<br>
$ dput mentors hello_2.6-2_amd64.changes<br>
<br>
9. 召唤 Debian Developer (DD)<br>
到 <a href="http://mentors.debian.net" target="_blank">mentors.debian.net</a>, 登录后可以找到一份模板邮件, 把模板邮件中的内容填好,然后发到<br>
<a href="mailto:debian-mentors@lists.debian.org">debian-mentors@lists.debian.org</a><br>
如果你有相熟的 DD, 也可以直接发信给他让他帮忙检查。<br>
<br>
--<br>
Best Regards<br>
LI Daobing<br>
<font color="#888888">--<br>
ubuntu-zh mailing list<br>
<a href="mailto:ubuntu-zh@lists.ubuntu.com">ubuntu-zh@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh" target="_blank">https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh</a><br>
</font></blockquote></div><br></div>