Debian新维护者⼿册
Debian新维护者⼿册
版权?1998-2002Josip Rodin
版权?2005-2015Osamu Aoki
版权?2010Craig Small
版权?2010Rapha?l Hertzog
本⽂档可在GNU通⽤公共许可证第⼆版或更⾼版本的条款规定下使⽤。
本⽂档在撰写过程中参考了以下两篇⽂档:
Making a Debian Package(AKA the Debmake Manual),copyright1997Jaldhar Vyas. The New-Maintainer’s Debian Packaging Howto,copyright1997Will Lowe. COLLABORATORS
TITLE:
Debian新维护者⼿册
ACTION NAME DATE SIGNATURE WRITTEN BY Josip Rodin、
July23,2018
Osamu Aoki(青⽊
修)、Aron Xu、李
凌、郑原真、周默
和杨博远
July23,2018
July23,2018
July23,2018
July23,2018
July23,2018
REVISION HISTORY
NUMBER DATE DESCRIPTION NAME
Contents
git常用指令1正确的起点1
1.1Debian的社会驱动⼒ (1)
1.2需要的开发⼯具 (3)
1.3需要的开发⽂档 (4)
1.4到何处求助 (4)
2第⼀步6
2.1Debian软件包制作流程 (6)
2.2挑⼀个你喜欢的程序 (7)
2.3获取程序并试⽤ (9)
2.4简单的编译系统 (9)
2.5常见的可移植编译系统 (10)
2.6软件包名称和版本 (10)
2.7设置dh_make (11)
2.8初始化外来Debian软件包 (12)
3修改源代码13
3.1设置quilt (13)
3.2修复上游Bug (13)
3.3⽂件安装 (14)
3.4不同的库名称 (16)
4debian⽬录中的必须内容17
4.1control (17)
4.2copyright (21)
4.3changelog (22)
4.4rules (23)
4.4.1rules⽂件中的Target (23)
4.4.2默认的rules⽂件 (23)
4.4.3定制rules⽂件 (26)
5debian⽬录下的其他⽂件29
5.1README.Debian (29)
5.2compat (30)
5.3conffiles (30)
* (30)
5.5dirs (31)
5.6package.doc-base (31)
5.7docs (31)
5.8emacsen-* (31)
amples (32)
5.10package.init和package.default (32)
5.11install (32)
www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html (32) 5.13package.links (32)
5.14{package.,source/}lintian-overrides (33)
5.15manpage.* (33)
5.15. (33)
5.15. (33)
5.l.ex (34)
5.16package.manpages (34)
5.17NEWS (34)
5.18{pre,post}{inst,rm} (34)
amples (35)
5.20TODO (35)
5.21watch (35)
5.22source/format (35)
5.23source/local-options (36)
5.24source/options (36)
5.25patches/* (36)
6构建软件包38
6.1完整的(重)构建 (38)
6.2⾃动编译系统 (39)
6.3debuild命令 (40)
6.4pbuilder软件包 (40)
6.5git-buildpackage及其相似命令 (41) 6.6快速重构建 (42)
6.7命令层级 (43)
7检查软件包中的错误44
7.1诡异可疑的改动 (44)
7.2校验软件包安装过程 (44)
7.3检验软件包的maintainer scripts (44) 7.4使⽤lintian (45)
7.5debc命令 (45)
7.6debdiff命令 (46)
7.7interdiff命令 (46)
7.8mc命令 (46)
8更新软件包47
8.1新的Debian版本 (47)
8.2检查新上游版本 (48)
8.3新上游版本 (48)
8.4更新打包风格 (49)
8.5UTF-8转换 (50)
8.6对更新软件包的⼏点提⽰ (50)
9上传软件包51
9.1上传到Debian仓库 (51)
9.2在上传时包含⽂件 (52)
9.3跳过的上传 (52)
A⾼级打包53
A.1共享库 (53)
A.2管理debian/package.symbols (54)
A.3多体系结构 (55)
A.4构建共享库包 (56)
A.5Debian本⼟软件包 (57)
Chapter1
正确的起点
本⽂档致⼒于为普通Debian⽤户,和希望对Debian软件包有所了解的开发⼈员讲述如何制作Debian软件包。在这⾥,我们尽可能使⽤通俗的语⾔,并辅以实例来直观地展⽰每⼀个细节。有⼀句古罗马谚语说得好:⼀例胜千⾔!
本教程⽂档已被重写为另外的Debian维护者指导
(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /doc/devel-manuals#debmake-doc)⽂档,其中包含了更新的内容与更多实际例⼦。请使⽤新的教程作为主要的教程⽂档。
该⽂档在Debian Buster发布时仍然可⽤,因为它已提供了许多语⾔的翻译版本。该⽂档会在之后的Debian版本中被移除,因为其内容正在逐渐过时。1
Debian的软件包系统是使它跻⾝顶级发⾏版⾏列的重要原因之⼀。尽管已经有相当数量的软件被打包成Debian的格式,但有时还是需要安装⼀些并⾮该格式的软件。可能你正为如何制作⾃⼰的软件包⽽感到迷惑,也可能认为这么做很难。如果你是⼀个刚刚接触Debian的初学者,那么是的,它的确很难;不过假如你真的只是⼀个初⼊此门的新⼿,现在⼤概也不会来读这篇⽂档了。:-)你的确需要对Unix编程有所了解,但显然没必要是这⽅⾯的天才。2
对于Debian软件包维护⼈员来说,有⼀件事是⾮常明确的:创建并维护⼀个Debian软件包需要花费很多精⼒,所需的时间很可能远不只是⼏个⼩时。维护⼈员需要有良好的技术基础,同时也需要⼗分勤奋,这样才能保证我们的系统正常运⾏⽽不出现问题。
如果你在软件包制作⽅⾯需要他⼈帮助,请阅读第 1.4 节。
本⽂的最新版随时都可以在www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /doc/maint-guide/上和maint-guide软件包⾥到。⽂档的简体中⽂翻译可以在maint-guide-zh-cn软件包⾥到。还有⼀点需要注意的是,这篇⽂档的内容相对于当前的开发情况可能会有略微的延迟。
由于这是⼀份⼿把⼿的教程,所以在⼀些重要的话题上会对每个步骤都做详细的解释。虽然你可能觉得它们之中有⼀些与你的想法毫不相⼲,但也请准备好⾜够的耐⼼来学习。另外,我也有意地省略了
某些不必要的细节,以使这篇⽂档尽可能保持简洁。
1.1Debian的社会驱动⼒
以下是⼀些有关Debian的社会动⼒学报告,希望它们能够帮助你做好准备,以与Debian进⾏交互:
⼤家都是志愿者。
–任何⼈都不能把事情强加给他⼈。
–你应该主动地做⾃⼰想做的事情。
1在写这份⽂档时,我们默认你使⽤jessie或者更新的操作系统。如果你需要在更⽼版本的系统上(包括⽼版本的Ubuntu等)
使⽤本⽂所记述的⽅法,则⾄少必须安ackports仓库中的dpkg和debhelper软件包。
2在Debian Reference(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html
/doc/manuals/debian-reference/)中,你可以了解到使⽤Debian系统的⼀些基本⽅法和关于Unix编程的
⼀些指引。
友好的合作是我们前⾏的动⼒。
–你的贡献不应致使他⼈增加负担。
–只有当别⼈欣赏和感激你的贡献时,它才有真正的价值。
Debian并不是⼀所学校,在这⾥没有所谓的⽼师会⾃动地注意到你。
–你需要有⾃学⼤量知识和技能的能⼒。
–其他志愿者的关注是⾮常稀缺的资源。
Debian⼀直在不断进步。
–Debian期望你制作出⾼质量的软件包。
–你应该随时调整⾃⼰来适应世界的变化。
在Debian社区中有这⼏类常见的⾓⾊:
Upstream author(上游作者):程序的原始作者。
Upstream maintainer(上游维护者):⽬前在上游维护程序代码的⼈。
Maintainer(软件包维护者):制作并维护该程序Debian软件包的⼈。
Sponsor(赞助者):帮助维护者上传软件包到Debian官⽅仓库的⼈(在通过内容检查之后)。
Mentor(导师):帮助新⼿维护者熟悉和深⼊打包的⼈。
Debian Developer(DD,Debian开发者):Debian社区的官⽅成员。DD拥有向Debian官⽅仓库上传的全部权限。?Debian Maintainer(DM,Debian维护者):拥有对Debian官⽅仓库部分上传权限的⼈。
注意,你不可能在⼀夜之间成为Debian Developer,因为成为DD所需要的远不只是技术技巧。不过别因此⽽⽓馁,如
果你的软件包对其他⼈有⽤,你可以当这个软件包的Maintainer,然后通过⼀位Sponsor来上传这份软件,或者你可
以申请成为Debian Maintainer。
还有,要成为Debian Developer不⼀定要创建新软件包。对已有软件做出贡献也是成为Debian Developer的理想途径。眼下正有很多软件包等着好的维护者来接⼿(参看第 2.2 节)。
在这篇⽂档⾥,我们的重点在于制作软件包的技术细节。有关Debian是如何运转的,以及如何才能参与到其中之类的
话题,请参考下边的⽂档:
Debian:17years of Free Software,”do-ocracy”,and
democracy(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /~zack/talks/2011/20110321-taipei.pdf)(幻
灯⽚介绍)
How can you help Debian(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /intro/help)(官⽅⽂档)
The Debian GNU/Linux FAQ,Chapter13-”Contributing to the Debian
Project”(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /doc/FAQ/ch-contributing) (半官⽅⽂档)
Debian Wiki,HelpDebian(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /HelpDebian)(补充材料)
Debian New Member site(www.doczj/doc/d8b3ad9fd4bbfd0a79563c1ec5da50e2524dd180.html /)(官⽅站点)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。