Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams, thus acquiring more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented or even regulated. It must, in effect, comply with all the standards established by the
Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as squashing bugs.
The Policy, an essential element of the Debian Project, establishes the norms ensuring both the quality of the packages and perfect interoperability of the distribution. Thanks to this Policy, Debian remains consistent despite its gigantic size. This Policy is not fixed in stone, but continuously evolves thanks to proposals formulated on the
debian-policy@lists.debian.org
mailing list. Amendments that are agreed upon by all interested parties are accepted and applied to the text by a small group of maintainers who have no editorial responsibility (they only include the modifications agreed upon by the Debian developers that are members of the above-mentioned list). You can read current amendment proposals on the bug tracking system:
政策含包装的技术细节。计划的大小也引发组织的问题;由 Debian 宪法处理,即创建决策的结构与方法。换句话说,就是正式的治理系统。
Debian 宪章定义了一些角色和职位,以及各自的职责和权力。值得特别指出的是,通过投票决议,Debian 开发者们总是拥有最终的决定权。对于重大的修改(例如会对基金会文档产生影响的),只有当有效票数超过四分之三(75%)时,才会通过。然而,开发者们每年都会选举一位“领导人”作为他们的会议代表,同时领导人也会在内部的各个团队协调沟通。这一选举总是伴随着一段紧张激烈的讨论过程。领导人的角色并没有在任何官方文件内被定义:参选的候选人常常会提出自己对于该职位的理解和定位。在实际工作中,领导人角色包括媒体发言人,协调内部团队,对项目提供总体领导。每一位开发者都参与其中,因为大多数项目成员都认同了 Debian 项目领导人的观点。
特别的,领导人拥有真正的特权;他们的投票可以解决票数相等的问题;他们可以对某个尚未归属于任何人管辖名下的事件作出决定,同时可以将他们自己的一部分职责委托他人代为执行。
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Mehdi Dogguy, Chris Lamb and Sam Hartman.
宪章同样也定义了一个“技术委员会(technical committee)”。技术委员会的核心角色是对于那些在开发者之间尚未达成一致意见的技术事宜进行决策。除此以外,委员会则作为顾问角色,为任何无法为他们所负责的事宜作出决定的开发者提供帮助。值得一提的是,只有在相关问题方给委员会发送邀请时,委员会才会介入。
最后,宪章定义了一个“项目秘书”的职位,这一角色负责组织各种选举和决议的投票。
The “general resolution” procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a
Condorcet method (more specifically, the Schulze method). For further details see:
即使宪法创建了表面的民主,每日的运作却大不相同:Debian 遵守自由软件的蠢蛋进化论:做事的人决定怎么做事。争论解决问题的方法只是浪费时间;选择有用且满意的方案才是王道…有能力的人就是这么做。
这就是升级的唯一方法:做有用的事且显示把事情做好。Debian '管理' 团体以增选方式管理,采用已有效奉献且证明其能力的志愿者。新的奉献者看到这些团队做了具有公共利益性质的工作就会主动加入协助。这就是 Debian 常被称为 '任人唯贤'。
这种有效的管理方法保证在 Debian '关键' 团队奉献者的品质。不见得是完美的且偶而凸搥。选择被团队接受的开发者是随兴的,甚至不公平的。而且,不是每个人对这些团队服务的期望是一样的。有些人受不了等8天才能收录新的 Debian 软件包,也有人耐心等待3周毫无怨言。所以,有些团队对 '服务品质' 经常不满。
One might wonder if it is relevant to mention the users among those who work within the Debian project, but the answer is a definite yes: they play a critical role in the project. Far from being “passive”, some users run development versions of Debian and regularly file bug reports to indicate problems. Others go even further and submit ideas for improvements, by filing a bug report with a severity level of “wishlist”, or even submit corrections to the source code, called “patches” (see
第 1.3.2.3 节 “Sending fixes”).
The fundamental tool for submitting bugs in Debian is the Debian Bug Tracking System (Debian BTS), which is used by large parts of the project. The public part (the web interface) allows users to view all bugs reported, with the option to display a sorted list of bugs selected according to various criteria, such as: affected package, severity, status, address of the reporter, address of the maintainer in charge of it, tag, etc. It is also possible to browse the complete historical listing of all discussions regarding each of the bugs.
Debian 缺陷跟踪系统(Debian BTS)在项目的许多地方都有应用。其公开部分(网页界面)可以让用户查看所报告的问题,并提供选项以根据不同的筛选条件给出一个列表。这些条件包括:受影响的软件包、问题严重性、状态、报告者的电子邮件地址、负责维护软件包人员的电子邮件地址、标签,等等。用户也可以在线浏览与这些问题相关的所有讨论的历史记录。
The Debian BTS has other functional features, as well, such as the use of tags for labeling bugs. For more information, see
Users can also use the command line to send bug reports on a Debian package with the reportbug
tool. It helps making sure the bug in question hasn't already been filed, thus preventing redundancy in the system. It reminds the user of the definitions of the severity levels, for the report to be as accurate as possible (the developer can always fine-tune these parameters later, if needed). It helps writing a complete bug report without the user needing to know the precise syntax, by writing it and allowing the user to edit it. This report will then be sent via an e-mail server (by default, a remote one run by Debian, but reportbug
can also use a local server).
此工具原先系供发展版使用,做为修正错误之用。后来发现,Debian 的稳定版也需要它,安全更新或重要更新 (或完全无效的软件包)。因此,Debian 软件包的次要错误的修订,在下个稳定版才纳入。
1.3.2.2. Translation and documentation
Additionally, numerous satisfied users of the service offered by Debian like to make a contribution of their own to the project. As not everyone has appropriate levels of expertise in programming, they may choose to assist with the translation and review of documentation. There are language-specific mailing lists to coordinate this work.
More advanced users might be able to provide a fix to a program sending a patch.
补丁是描述文件修改的文件。准确来说,包括移除或添加的代码清单,以及 (有时) 从参考文档取得的内容,用以取代修改的内文 (可以辨识取代的内容)。
补丁是描述文件修改的文件。准确来说,包括移除或添加的代码清单,以及 (有时) 从参考文档取得的内容,用以取代修改的内文 (可以辨识取代的内容)。
修改该等文件的工具名称就是 patch
。添加为 diff
,用法如下:
$
diff -u file.old file.new >file.patch
file.patch
文件包括变更 file.old
为 file.new
的指令。可以发送给其他人,用于从两个文件添加 file.new
,如:
$
patch -p0 file.old <file.patch
现在,此文件 file.old
内容等同于 file.new
。
1.3.2.4. Other ways of contributing
用户不仅自助 (也助人) 于直接影响他们的技术面,也讨论奉献 Debian 计划的最佳途径与协助其向前行 — 经常出现改进的建议。
Debian 不仅持续自我推广,其用户在扩散方面也居功甚伟,口耳相传其名声。
This method works quite well, since Debian fans are found at all levels of the free software community: from install parties (workshops where seasoned users assist newcomers to install the system) organized by local LUGs or “Linux User Groups”, to association booths at large tech conventions dealing with Linux, etc.
Volunteers make posters, brochures, stickers, and other useful promotional materials for the project, which they make available to everyone, and which Debian provides freely on its website and on its wiki:
Debian 从开始就以源代码的概念组织起来,每个软件包都有维护者。随时出现新的工作团队,于子计划内形成新的团队,确保基础建设的管理,以及流程运作不会被特定的软件包绑住 (品质保证、Debian 政策、安装器等)。
每个 Debian 子计划是一群志愿者修改 Debian 供特定需求之用。选择部分程序供特定领域 (教育、医学、多媒体制作等) 使用之外,子计划的目标还包括改进现有的软件包、包装漏失的软件、调整安装器、添加特定的文档,等等。
目前较流行的子计划:
Debian Jr., by Ben Armstrong, offering an appealing and easy to use Debian system for children;
Debian Edu, by Petter Reinholdtsen, focused on the creation of a specialized distribution for the academic world;
Debian Med,由 Andreas Tille 制作,专供医护领域使用;
Debian Multimedia 针对音效与多媒体的工作;
Debian GIS 照顾地理信息系统应用程序与用户;
Debian Accessibility, improving Debian to match the requirements of people with disabilities;
Debian Science, finally, working on providing researchers and scientists a better experience using Debian.
DebiChem, targeted at Chemistry, provides chemical suites and programs.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian sub-projects. Fully supported by the existing Debian infrastructure, they can, in effect, focus on work with real added value, without worrying about remaining synchronized with Debian, since they are developed within the project.
大部分的管理团体以相对封闭的增选方式招募成员。最好的加入方法是协助现有成员工作,表示您了解该团体的目标与运作方式。
ftpmaster 管理员负责管理 Debian 软件包的官方仓库。他们维护用于接收开发者传来的软件包的程序;经过一些检查后,软件包将被保存在目标服务器上 (ftp-master.debian.org
)。
他们也检查添加软件包的授权条款,确保在纳入它们之前,Debian 有权散布它们。被要求移除的软件包,由开发者经由错误追踪系统与 ftp.debian.org '虚拟软件包' 向团队提出。
此 名单大师 管理邮件列表的电子邮件服务器。职责包括添加名单、处理送回 (无法送出的育知)、以及垃圾邮件过滤器 (未授权的批次邮件)。
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case of the bug tracking system (BTS), the package tracker,
salsa.debian.org
(GitLab server, see sidebar
TOOL GitLab, Git repository hosting and much more), the services available on
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, etc.
不同于管理团队,发展团队较为开放,甚至可以说是置身于奉献者之外。Debian 自身不添加软件,计划仍需要外部软件满足其需要。当然,仍是在自由软件授权下发展,这些工具使用被自由软件世界验证的方法。
Debian 发展自己的小软件,但却是重要的软件,其名声远超越 Debian 计划本身。dpkg
是个例子,它是 Debian 软件包管理程序 (事实上,它是 Debian PacKaGe 的缩写,读成 'dee-package'),另一个是 apt
,自动安装 Debian 软件包的工具,检查其相依性,保证安装后与系统一致 (其名称为 Advanced Package Tool 的缩写)。然而,它们都是由小团队撰写的,只需要高端程序技巧就能了解该等程序的运作方式。
最重要的团队可能是 Debian 安装计划,
debian-installer
,2001年问世以来就是重要的部分。以一个程序安装十多种架构下的 Debian 不是件简单的事,需要很多奉献者才能完成它。每个架构需有自己的启动程序与引导程序。透过
debian-boot@lists.debian.org
邮件列表,在 Cyril Brulebois 领导下,完成这些工作。
这个 (极小的) debian-cd
程序团队的目标更谦虚。由很多 '小小' 的奉献者负责其架构,因为主要的开发者无法知道全部的细微之处,也不知道从CD-ROM 安装的正确方式。