目录
这里给出你在投入 Debian 相关工作之前应当理解掌握的一些必备的预备知识。
在 Debian 社区中有这几类常见的角色:
注意,你不可能在一夜之间成为 Debian 开发者(DD),因为成为 DD 所需要的远不只是技术技巧。不过别因此而气馁,如果你的软件包对其他人有用,你可以当这个软件的软件包维护者,然后通过一位赞助者来上传这份软件,或者你可以申请成为 Debian 维护者。
还有,要成为 Debian 开发者不一定要创建新软件包。对已有软件做出贡献也是成为 Debian 开发者的理想途径。眼下正有很多软件包等着好的维护者来接手(参见 第 2.8 节 “贡献流程”)。
请参考下列文档来了解应当如何为 Debian 作出贡献:
为做好准备和 Debian 进行交互,请理解 Debian 的社会动力学:
我们都是志愿者。
友好的合作是我们前行的动力。
Debian 并不是一所学校,在这里没有所谓的老师会自动地注意到你。
Debian 一直在不断进步。
在这篇指南之后的部分中,我们只关注打包的技术方面。因此,请参考下面的文档来理解 Debian 的社会动力学:
这里给出一些技术上的建议,参考行事可以让你与其他维护者共同维护软件包时变得更加轻松有效,从而让 Debian 项目的输出成果最大化。
让你的软件包容易除错(debug)。
让你的软件包拥有良好的文档记录。
![]() |
注意 |
---|---|
对软件进行除错(debug)通常会比编写初始可用的软件花费更多的时间。 |
请在阅读本指南的同时按需阅览下面这些 Debian 官方文档中的相关部分;这些文档提供的信息有助于创建质量优良的 Debian 软件包:
“Debian 政策手册”
“Debian 开发者参考”
If this guide contradicts the official Debian documentation, the official Debian documentation is correct. Please file a bug report on the debmake-doc package using the reportbug command.
Here are alternative tutorial documents, which you may read along with this guide:
“Debian 新维护者手册”(较旧)
“Debian 打包教程”
“Ubuntu 打包指南”(Ubuntu 基于 Debian。)
![]() |
提示 |
---|---|
When reading these tutorials, you should consider using the debmake command in place of the dh_make command for better template files. |
Before you decide to ask your question in some public place, please do your part of the effort, i.e., read the fine documentation:
Your desired information can be found effectively by using a well-formed search string such as “keyword site:lists.debian.org” to limit the search domain of the web search engine.
制作一个小型测试用软件包也是了解打包细节的一个好办法。对当前已有的维护良好的软件包进行检查则是了解其他人如何制作软件包的最好方法。
如果你对打包仍然存在疑问,你可以使用以下方式与他人进行沟通:
特定语言的邮件列表。
如果你在做好功课后能在这些场合中合适地提出你的疑问的话,那些更有经验的 Debian 开发者会很愿意帮助你。
![]() |
小心 |
---|---|
Debian development is a moving target. Some information found on the web may be outdated, incorrect, and non-applicable. Please use it carefully. |
请了解 Debian 仓库的当前状况。
Thus, contributions to packages already in the archive are far more appreciated (and more likely to receive sponsorship for uploading) by other maintainers.
![]() |
提示 |
---|---|
来自 devscripts 软件包的 wnpp-alert 命令可以检查已安装软件中需要接手或已被丢弃的软件包。 |
Here is pseudo-Python code for your contribution approaches to Debian with a program:
if exist_in_debian(program): if is_team_maintained(program): join_team(program) if is_orphaned(program) # maintainer: Debian QA Group adopt_it(program) elif is_RFA(program) # Request for Adoption adopt_it(program) else: if need_help(program): contact_maintainer(program) triaging_bugs(program) preparing_QA_or_NMU_uploads(program) else: leave_it(program) else: # new packages if not is_good_program(program): give_up_packaging(program) elif not is_distributable(program): give_up_packaging(program) else: # worth packaging if is_ITPed_by_others(program): if need_help(program): contact_ITPer_for_collaboration(program) else: leave_it_to_ITPer(program) else: # really new if is_applicable_team(program): join_team(program) if is_DFSG(program) and is_DFSG(dependency(program)): file_ITP(program, area="main") # This is Debian elif is_DFSG(program): file_ITP(program, area="contrib") # This is not Debian else: # non-DFSG file_ITP(program, area="non-free") # This is not Debian package_it_and_close_ITP(program)
其中:
对 exist_in_debian() 和 is_team_maintained(),需检查:
对 is_orphaned()、is_RFA() 和 is_ITPed_by_others(),需检查:
对于 is_good_program(),请检查:
对 is_it_DFSG(),及 is_its_dependency_DFSG(),请检查:
对 is_it_distributable(),请检查:
你或是需要填写并提交一份 ITP,或是需要“收养”一个软件包并开始为其工作。请见“Debian 开发者参考(Debian Developer's Reference)”文档:
新手贡献者和维护者可能想知道在开始向 Debian 进行贡献之前需要事先学习哪些知识。根据你个人的侧重点不同,下面有我的一些建议供你参考:
打包
翻译
文档
新手贡献者和维护者可能想知道从哪里开始向 Debian 进行贡献。根据你掌握的技能,下面有我的一些建议供你参考:
POSIX shell、Perl 和 Python 的技巧:
C 和 C++ 技能:
英语之外的技能:
文档技能:
这些活动应当能让您在各位 Debian 社区成员之间得到存在感,从而建立您的信誉与名气。
新手维护者应当避免打包具有潜在高度安全隐患的程序:
在积累足够的打包经验后,你可以再尝试打包这样的程序。