[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]
现在我们已经为构建软件包做好了准备。
进入程序的主目录然后运行如下命令:
dpkg-buildpackage -rfakeroot
这将为你做好每件事情。它会:
清理源代码目录树(debian/rules clean),需要使用fakeroot
构建源代码软件包(dpkg-source -b)
构建程序(debian/rules build)
构建二进制软件包(debian/rules binary),需要使用fakeroot
用文件.dsc给源代码签名,需要使用gnupg
创建上传文件.changes并给它签名,需要使用
dpkg-genchanges
和gnupg
唯一需要你输入的是你的GPG密钥的密码,两次。
当完成所有这些,你会在上一层目录(~/gentoo/)中看到下面的文件:
gentoo_0.9.12.orig.tar.gz
这是原来的源程序的压缩包,为了遵守Debian的标准,修改了它的文件名。注意
它是我们通过在开始时运行带有“-f”参数的dh_make
命令创建的。
gentoo_0.9.12-1.dsc
这时对源代码的一个总结。这个程序是利用你的“control”文件创建的,并且在
用dpkg-source(1)
命令解包源代码时将会用到。这个
文件已经有了GPG签名,这样人们就可以确认他是你发布的。
gentoo_0.9.12-1.diff.gz
这个文件中包含了每一个你对原始源代码所做的每一个修改,它的格式是“unified
diff”。他是由dpkg-source(1)
程序创建的,而且这
个程序还要使用它。警告:如果你没有把原始的源代码压缩包的名字改
成packagename_version.orig.tar.gz,dpkg-source
将不能正确地创建这
个.diff.gz文件。
如果其它人希望重头重新构造你的软件包,它们可以用上面的三个文件很容易地 做到。解包的过程很简单:只要把这三个文件复制到一个别的什么地方,然后运 行dpkg-source -x gentoo_0.9.12-1.dsc.
gentoo_0.9.12-1_i386.deb
这是你的完整的二进制软件包。你可以象对待其它软件包一样用dpkg
命令
安装和删除它。
gentoo_0.9.12-1_i386.changes
这个文件描述了描述了所有对当前版本的修订版所作的改动,Debian FTP文档维 护程序在安装二进制版本软件包和源代码版本的软件包时将会使用到它。它的一 部分是通过“changelog”文件和.dsc文件创建的。这个文件已经有了GPG签名,这 样人们可以确信它确实是你的。
因为你会继续花精力在这个软件包上,它的行为可能会改变,还有可能会增加一 些新的功能。下载了你的软件包的人们可以通过阅读这个文件从而快速的了解到 什么东西发生了变化。Debian的文档维护程序也会把这个文件的内容发送 到debian-devel-changes邮件列表上。
.dsc和.changes文件中的长数字字符串是上面提到的文件的MD5校验码。下载了你
的文件的人可以用md5sum(1)
来检查这些数字是否相
同,这样它们就可以知道文件是不是损坏了,或者是否被窜改了。
对于一个很大的软件包,你可能不希望在你调整了debian/rules
文
件的一些细节后都从头来构建它。为了测试,你可以只制作一个.deb文件而不重
新构造上游源代码,具体的作法如下所示:
fakeroot debian/rules binary
一旦你完成了调整,记得要根据上面的内容从头以正确的顺序重新构建软件包。 如果你想上传一个以这种方式制作的.deb文件时可能会遇到错误。
debuild
命令
使用debuild
命令你可以让后面的构造软件包的过程自动完成。
参考debuild(1)
。
对debuild命令的地址可以通过修改/etc/devscripts.conf
或
者~/.devscripts
完成。我建议至少修改以下内容:
DEBSIGN_KEYID="Your_GPG_keyID" DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -ICVS -I.svn"
使用这个配置,你就可以总是使用你的GPG密钥来构造软件包并避免不希望的部件。(这 对于发起人也是很好的。)譬如,使用一个用户帐号清空源码并重新构造软件包会非常 简单:
debuild clean debuild
dpatch
系统
简单地使用dh_make
和dpkg-buildpackage
命令会创
建一个大的diff.gz
文件,这个文件中会包含debian/
目录中的文件和源码补丁。当日后要检查和理解每一处对源码的修改时,
这样的包会难以处理。这样总不是很好。 [1]
目前已经有多种管理多个补丁的方法用于Debian中。dpatch
系统是
其中最一简单的一个,此外还有dbs、cdbs等。
一个用dpatch
系统打包的软件包,其软件包的修改记录在debian/patches/
目录下的一个文档清晰的补丁集中。debian/
目录之外的源码树并没有被修改。如果你需要其它人来帮你上传软件包,
通过上述方法将你所做的修改清晰地分离出来并加上文档是非常重要的,它可以
方便别人检查。dpatch
程序的用法在dpatch(1)
中解释清楚了。
此后如果当某人(包括你自己)为你提供了一个源码补丁,在dpatch下修改源码包 是非常容易的:
修改补丁,使其成为对源码树的-p1补丁。
用dpatch patch-template
命令加入文件头。
将其放入debian/patches
目录
将此dpatch文件放入debian/patches/00list
文件中
此外dpatch
还可以通过使用CPP宏让补丁对体系结构无关。
orig.tar.gz
当你第一次上传了软件包时,你需要包含原始的orig.tar.gz
源码
包。如果包的Debian修正版本号不是-0或-1,你在使
用dpkg-buildpackage
命令需要加上“-sa”选项。换句话
说,“-sd”选项将会除去orig.tar.gz
文件。
[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ 下一页 ]
Debian新维护人员手册
version 1.2.3, 2005年4月3日.joy-mg@debian.org
lilingv@gmail.com
ycheng@slat.org