#use wml::debian::template title="Debian 缺陷跟踪系统——报告缺陷" NOHEADER=yes NOCOPYRIGHT=true
#use wml::debian::translation-check translation="1.84" maintainer="Boyuan Yang"
<h1>如何使用 reportbug 在 Debian 中报告 bug</h1>
<a name="reportbug"></a>
<p>我们强烈建议您在 Debian 中报告问题、缺陷与错误时使用
<code><a
href="https://packages.debian.org/stable/utils/reportbug">reportbug</a></code>
程序。如需安装并启动它,您仅需运行:</p>
<blockquote>
<p># <kbd>apt-get install reportbug</kbd><br/>
$ <kbd>reportbug</kbd></p>
</blockquote>
<p>该程序将引导您一步一步完成缺陷报告流程。</p>
<p>如果您对 reportbug 提供的交互式功能有疑问或者其功能无法满足您的需求的话,
请参考本文后面叙述的文档内容,或者在<a
href="mailto:debian-user@lists.debian.org"> Debian 用户邮件列表(英文)</a>
或 <a href="mailto:debian-chinese-gb@lists.debian.org">Debian 中文邮件列表</a>询问。</p>
<h1>如何使用电子邮件向 Debian 报告 bug(reportbug 的高级用法)</h1>
<h2>在您发送缺陷报告<strong>之前</strong>需要了解的东西</h2>
<a name="whatpackage"></a>
<h3>您的报告应当归属哪个软件包之下?</h3>
<p>您需要知道您的缺陷报告应该针对哪一个软件包进行提交。请查看
<a href="#findpkgver">这个例子</a>以了解您该如何获取这类信息。
(您还可以通过这些信息了解到<a href="#filedalready">您的缺陷报告是否已经被其他人提交过了。</a>)
</p>
<p>如果您无法确定您的报告应该针对哪一个软件包提交,
请向 <a href="mailto:debian-user@lists.debian.org">Debian
用户邮件列表</a>发送邮件询问以得到建议。</p>
<p>如果您遇到的问题并不仅仅和某个单一的软件包相关,而是和某些一般的 Debian
服务有关的话,我们有一些 <a href="pseudo-packages">pseudo-packages</a>
(即“伪软件包”)以及 <a href="../MailingLists/">邮件列表</a>。
这些设施可以帮助你将相关的信息转递给我们。
<a name="filedalready"></a>
<h3>您的缺陷报告是否已被提交过了?</h3>
<p>在提交报告之前,您应该检查您的缺陷报告是否已被他人提交过了。
即,其他人已经提交了一份报告描述了相同的问题。
如需查找某个软件包中已经被提交的问题报告列表,
您可以使用<a href="./#pkgreport">缺陷搜索表格中的“package”(软件包)选项</a>进行查找。
如果已经存在一个编号为“#<var><number></var>”且与您遇到的问题相同的报告的话,
您应该以向收件人为“<var><number></var>@bugs.debian.org”
的电子邮件地址发送电子邮件以附加您的评论。此时请不要提交一个新的缺陷报告以避免重复。</p>
<h3>请为不同的问题各自提交报告</h3>
<p>请不要在单一的缺陷报告中描述多个不相关的问题。当这些问题分属不同的软件包时更是如此。
请为每个问题提交各自独立的报告。</p>
<h3>避免直接向上游提交报告</h3>
<p>如果您已经在 Debian 中提交了一份报告,请不要将其副本原封不动地向上游再报告一份,
因为这个问题很可能只在 Debian 中出现。如果真的必要的话,软件包维护者会帮忙将报告
转发给上游。</p>
<h2>使用电子邮件发送缺陷报告</h2>
<p>您可以使用发送电子邮件的方式向 Debian 提交一份新的缺陷报告,
下文将具体描述操作方法。您的电子邮件应当发往<a href="mailto:submit@bugs.debian.org">
<code>submit@bugs.debian.org</code></a>,并采取后文中描述的特殊文本格式。
<code>reportbug</code> 工具(<a href="#reportbug">参见前文</a>)实质上是自动帮助你
撰写了合适格式的电子邮件并进行提交。可能的话,请尽量使用它!</p>
<h3>信头</h3>
<p>和其它电子邮件一样,您应该在您的邮件中写上一个明晰、描述性的<code>Subject</code>
(主题、标题)行。这个标题将为作为追踪系统中报告的初始标题,所以请尽可能地在标题中提供有用的信息!</p>
<p>如果您想要将这份缺陷报告的副本发送给其它的接收者(如邮件列表)的话,
您不应该在电子邮件头部写上收件人(即不应该使用标准的抄送、密送方式)。
此时您应该采用一种<a href="#xcc">特殊的方式进行,详见下文</a>。</p>
<h3><a name="pseudoheader">伪信头(Pseudo-Headers)</a></h3>
<p>您的缺陷报告正文的第一部分是伪信头(pseudo-headers),
其中应该包含一些与报告相关的信息,如这个报告所针对的软件包名称、对应软件包的版本等等。
邮件正文的第一行必须是一个伪信头信息。
它的内容应该是:</p>
<pre>
Package: <packagename>
</pre>
<p>请将 <code><packagename></code> 替换为 <a href="#whatpackage">软件包的名称</a>,
这个软件包应该存在您正在报告的问题或缺陷。</p>
<p>邮件正文信息的第二行应该是:</p>
<pre>
Version: <packageversion>
</pre>
<p>请将 <code><packageversion></code> 替换为软件包的版本。
除了版本字符串以外,这里请不要填入其它任何文本;
因为缺陷追踪系统需要使用该信息推断出哪些 Debian 发行版本受到该问题的影响。</p>
<p>为了让缺陷追踪系统能够将您的信息正确地转发到软件包维护者处,
您需要在伪信头部分提供正确的 <code>Package</code>(软件包名称)一行内容。
请参考 <a href="#findpkgver">这个例子</a> 以了解如何找到软件包名称的信息。</p>
<p>如需了解其它可用的伪信头,请见<a
href="#additionalpseudoheaders">额外的伪信头</a>。</p>
<h3>报告正文</h3>
<p>请在您的报告中提供以下信息:</p>
<ul>
<li>出错时屏幕上显示或打印出的任何错误信息的<em>准确</em>、<em>完整</em>的文本内容。
这非常重要!</li>
<li>准确地描述你输入了什么,或者做了什么导致了问题发生。</li>
<li>关于不正确行为的描述: 准确描述您期望中的行为, 和你观察到的实际行为. 直接从终端中复制输入输出是常用方法之一.</li>
<li>如果你对这个问题有了解的话,请提供一个推荐的修复方案,如果能提供补丁就更好了。</li>
<li>出现问题时该程序的配置细节,包括该程序的配置文件内容之类.</li>
<li>问题包的依赖列表(即问题包的Depends字段内容)</li>
<li>您当前使用的内核版本(获取命令: <code>uname -a</code>), C共享库 (获取命令: <code>dpkg -s libc6 | grep ^Version</code>), 以及任何其它的必要信息.
例如:如果您希望反馈一个关于perl脚本运行的问题,您应该提供perl解释器的程序版本(获取命令: <code>perl -v</code> 或 <code>dpkg -s perl | grep
^Version:</code>).</li>
<li>您系统里相关的硬件信息. 如果您是要报告关于设备驱动的问题,请列出您系统中的<em>全部</em>硬件,因为很多硬件问题通常由于IRQ或I/O地址冲突而产生.</li>
<li>如果您已经安装了<a
href="https://packages.debian.org/stable/utils/reportbug">reportbug</a>
那么命令
<code>reportbug -q --template -T none -s none -S normal -b --list-cc
none -q <package></code>的输出将很有用,因为这条包含维护者指定的脚本输出和版本信息.
</li>
</ul>
<p>还包括任何可能的相关信息,但在提供全面信息的同时,也必须注意尽量精简内容以便于快速准确的阅读和理解,否则您过于冗长的报告可能会被直接无视.</p>
<p>关于更多报告缺陷的建议,请阅读 <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs-cn.html">
如何有效地报告 Bug</a>.</p>
<h2><a name="example">一个示例缺陷报告</a></h2>
<p>信头和伪信头的具体示范:
</p>
<pre>
To: submit@bugs.debian.org
From: diligent@testing.linux.org
Subject: Hello says `goodbye'
Package: hello
Version: 1.3-16
When I invoke `hello' without arguments from an ordinary shell
prompt it prints `goodbye', rather than the expected `hello, world'.
Here is a transcript:
$ hello
goodbye
$ /usr/bin/hello
goodbye
$
I suggest that the output string, in hello.c, be corrected.
I am using Debian GNU/Linux 2.2, kernel 2.2.17-pre-patch-13
and libc6 2.1.3-10.
</pre>
<h2><a name="xcc">发送缺陷报告的副本到其它邮件地址</a></h2>
<p>Sometimes it is necessary to send a copy of a bug report to somewhere
else besides <code>debian-bugs-dist</code> and the package maintainer,
which is where they are normally sent.</p>
<p>You could do this by CC'ing your bug report to the other address(es),
but then the other copies would not have the bug report number put in
the <code>Reply-To</code> field and the <code>Subject</code> line.
When the recipients reply they will probably preserve the
<code>submit@bugs.debian.org</code> entry in the header and have their
message filed as a new bug report. This leads to many duplicated
reports.</p>
<p>The <em>right</em> way to do this is to use the
<code>X-Debbugs-CC</code> header. Add a line like this to your
message's mail header:</p>
<pre>
X-Debbugs-CC: other-list@cosmic.edu
</pre>
<p>This will cause the bug tracking system to send a copy of your report
to the address(es) in the <code>X-Debbugs-CC</code> line as well as to
<code>debian-bugs-dist</code>.</p>
<p>If you want to send copies to more than one address, add them
comma-separated in only one <code>X-Debbugs-CC</code> line.</p>
<p>Avoid sending such copies to the addresses of other bug reports, as
they will be caught by the checks that prevent mail loops. There is
relatively little point in using <code>X-Debbugs-CC</code> for this
anyway, as the bug number added by that mechanism will just be replaced
by a new one; use an ordinary <code>CC</code> header instead.</p>
<p>This feature can often be combined usefully with mailing
<code>quiet</code> — see below.</p>
<a name="additionalpseudoheaders"></a>
<h1>其他伪信头</h1>
<h2><a name="severities">重要程度</a></h2>
<p>您可以设置所提交缺陷报告的重要程度,但这并不是必须的,并且包维护者可以重新设置缺陷报告的重要程度.</p>
<p>要设置缺陷报告的重要程度,放置下列行到
<a href="#pseudoheader">伪信头(Pseudo-Headers)</a>:</p>
<pre>
Severity: <<var>重要程度</var>>
</pre>
<p>替换 <<var>重要程度</var>> 为有效的重要程度级别.
"有效的重要程度级别"在<a href="Developer#severities">高级文档(英文)</a>有列出.</p>
<h2><a name="tags">设置标签</a></h2>
<p>您可以为您的缺陷报告设置标签. 例如:如果您的缺陷报告中包含补丁, 您可能希望设置
<code>patch</code> 标签. 这不是必须的,并且开发者将为您的报告设置适当的标签.</p>
<p>要设置缺陷报告的标签, 放置下列行到
<a href="#pseudoheader">伪信头(Pseudo-Headers)</a>:</p>
<pre>
Tags: <<var>标签</var>>
</pre>
<p>替换 <<var>标签</var>> 为有效的可用标签,有效的可用标签在
<a href="Developer#tags">高级文档(英文)</a>有列出.
多个标签可用逗号或空格隔开.</p>
<pre>
User: <<var>username</var>>
Usertags: <<var>usertags</var>>
</pre>
<p>Replace <<var>usertags</var>> with one or more usertags.
Separate multiple tags with commas, spaces, or both. If you specify a
<<var>username</var>>, that user's tags will be set. Otherwise,
the e-mail address of the sender will be used as the username.</p>
<h2>Setting Forwarded</h2>
<pre>
Forwarded: <var>foo@example.com</var>
</pre>
<p>
will mark the newly submitted bug as forwarded to foo@example.com. See
<a href="Developer#forward">Recording that you have passed on a bug
report</a> in the developers' documentation for details.
</p>
<h2>Claiming ownership</h2>
<pre>
Owner: <var>foo@example.com</var>
</pre>
<p>
will indicate that foo@example.com is now responsible for fixing this
bug. See <a href="Developer#owner">Changing bug ownership</a> in the
developers' documentation for details.
</p>
<h2>Source Package</h2>
<pre>
Source: <var>foopackage</var>
</pre>
<p>
the equivalent of <code>Package:</code> for bugs present in the source
package of foopackage; for most bugs in most packages you don't want
to use this option.
</p>
<h2><a name="control">Control Commands</a></h2>
<pre>
Control: <var>control commands</var>
</pre>
<p>
Allows for any of the commands which must be sent to
<code>control@bugs.debian.org</code> to work when sent to <code>submit@bugs.debian.org</code> or
<code>nnn@bugs.debian.org</code>. -1 initially refers to the current
bug (that is, the bug created by a mail to submit@ or the bug
messaged with nnn@). Please see <a href="server-control">the
server control documentation</a> for more information on the
control commands which are valid.</p>
<p>For example, the following pseudoheader in a message sent
to <code>12345@bugs.debian.org</code>:</p>
<pre>
Control: retitle -1 this is the title
Control: severity -1 normal
Control: summary -1 0
Control: forward -1 https://bugs.debian.org/nnn
</pre>
<p>would cause 12345 to be retitled, its severity changed, summary set,
and marked as forwarded.</p>
<h2>X-Debbugs- headers</h2>
<p>Finally, if your
<acronym title="Mail User Agent" lang="en">MUA</acronym>
doesn't allow you to edit the headers, you can
set the various <code>X-Debbugs-</code> headers in the
<a href="#pseudoheader">pseudo-headers</a>.</p>
<h2>X-Debbugs- 信头</h2>
<p>如果您的
<acronym title="Mail User Agent" lang="en">MUA</acronym>
不允许您编辑信头,您可以将各类 <code>X-Debbugs-</code> 信头放在
<a href="#pseudoheader">伪信头(Pseudo-Headers)里</a>.</p>
<h1>Additional information</h1>
<h2>Different submission addresses (minor or mass bug reports)</h2>
<p>If a bug report is minor, for example, a documentation typo or a trivial
build problem, please adjust the severity appropriately and send it to
<code>maintonly@bugs.debian.org</code> instead of <code>submit@bugs.debian.org</code>.
<code>maintonly</code> will forward the report to the package maintainer
only, it won't forward it to the BTS mailing lists.</p>
<p>If you're submitting many reports at once, you should definitely use
<code>maintonly@bugs.debian.org</code> so that you don't cause too much redundant
traffic on the BTS mailing lists. Before submitting many similar bugs you
may also want to post a summary on <code>debian-bugs-dist</code>.</p>
<p>If wish to report a bug to the bug tracking system that's already been
sent to the maintainer, you can use <code>quiet@bugs.debian.org</code>. Bugs sent to
<code>quiet@bugs.debian.org</code> will not be forwarded anywhere, only filed.</p>
<p>When you use different submission addresses, the bug tracking system will
set the <code>Reply-To</code> of any forwarded message so that the replies
will by default be processed in the same way as the original report. That
means that, for example, replies to <code>maintonly</code> will go to
<var>nnn</var><code>-maintonly@bugs.debian.org</code> instead of
<var>nnn</var><code>@bugs.debian.org</code>, unless of course one overrides this
manually.</p>
<h2>致谢</h2>
<p>正常情况下,当您提交一个新的缺陷报告或者发送进一步信息到已有的缺陷报告时,您将会收到一封感谢邮件.
如果您不希望接收这类感谢邮件,可以在信头或伪信头里添加一行<code>X-Debbugs-No-Ack</code>.
但如果您在全新的缺陷报告中使用此方法,那么您必须亲自到相应包的缺陷报告页面去查看您获得的缺陷报告编号.
</p>
<p>注意<code>X-Debbugs-No-Ack</code>信头无法拒绝<code>control@bugs.debian.org</code>发来的感谢邮件, 因为这些感谢邮件可能包含出错信息,您应该阅读这些出错信息并采取适当措施.</p>
<h2>反垃圾邮件与丢失邮件</h2>
<p>缺陷跟踪系统拥有很多的反垃圾邮件规则来避免垃圾邮件混入缺陷报告.
我们也尝试最小化误报,如果您怀疑您的邮件被反垃圾邮件系统拦截,请发送邮件给<code>owner@bugs.debian.org</code>进行求助.
Another common cause of mail not making it through to the BTS is
utilizing addresses which match procmail's FROM_DAEMON, which
includes mail from addresses like <code>mail@foobar.com</code>. If
you suspect your mail matches FROM_DAEMON,
see <a href="https://manpages.debian.org/cgi-bin/man.cgi?query=procmailrc">procmailrc(5)</a>
to verify, and then resend the mail using an address which does not
match FROM_DAEMON.</p>
<h2>针对维护者未知的包</h2>
<p>如果缺陷跟踪系统不知道相应包的维护者,它将转发邮件到<code>debian-bugs-dist</code> ,这种情况下即使您将报告发送给<code>maintonly</code>也是如此</p>
<p>当您发送缺陷报告到<code>maintonly@bugs.debian.org</code> 或
<var>nnn</var><code>-maintonly@bugs.debian.org</code> 您必须确保<code>Package</code>伪信头(Pseudo-Headers)指定的包时正确的,
否则您应该使用 <A href="server-control"><code>control@bugs.debian.org</code>服务</A>来修正您的错误.</p>
<h2><a name="findpkgver">使用<code>dpkg</code>确定应该针对什么包和版本来提交缺陷报告</a></h2>
<p>When using <code>reportbug</code> to report a bug in a command, say
<code>grep</code>, the following will automatically select the right package
and let you write the report right away: <code>reportbug --file $(which
grep)</code></p>
<p>当使用 <code>reportbug</code> 报告某个命令的缺陷时, 例如
<code>grep</code>命令, <code>reportbug --file $(which grep)</code>将让reportbug自动选择grep命令对应的包.</p>
<p>您也可以使用<code>dpkg
--search 文件路径或文件名</code>来查找某个文件属于哪个包,使用 <code>dpkg --list 包名</code> 或 <code>dpkg --status 包名</code>来查看某个包的版本.
</p>
<p>For example:</p>
<pre>
$ which apt-get
/usr/bin/apt-get
$ type apt-get
apt-get is /usr/bin/apt-get
$ dpkg --search /usr/bin/apt-get
apt: /usr/bin/apt-get
$ dpkg --list apt
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii apt 0.3.19 Advanced front-end for dpkg
$ dpkg --status apt
Package: apt
Status: install ok installed
Priority: standard
Section: base
Installed-Size: 1391
Maintainer: APT Development Team <deity@lists.debian.org>
Version: 0.3.19
Replaces: deity, libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
Provides: libapt-pkg2.7
Depends: libapt-pkg2.7, libc6 (>= 2.1.2), libstdc++2.10
Suggests: dpkg-dev
Conflicts: deity
Description: Advanced front-end for dpkg
This is Debian's next generation front-end for the dpkg package manager.
It provides the apt-get utility and APT dselect method that provides a
simpler, safer way to install and upgrade packages.
.
APT features complete installation ordering, multiple source capability
and several other unique features, see the Users Guide in
/usr/doc/apt/guide.text.gz
</pre>
<a name="otherusefulcommands"></a>
<h2>其它有用的命令和软件包</h2>
<p>
<a href="https://packages.debian.org/stable/utils/reportbug">reportbug</a>包也包含<kbd>querybts</kbd>,它是一个用于在文本界面浏览缺陷跟踪系统的工具.
</p>
<p>Emacs users can also use the debian-bug command provided by the
<code><a href="https://packages.debian.org/stable/utils/debian-el">\
debian-el</a></code> package. When called with <kbd>M-x
debian-bug</kbd>, it will ask for all necessary information in a
similar way to <code>reportbug</code>.</p>
<hr />
#use "otherpages.inc"
#use "$(ENGLISHDIR)/Bugs/footer.inc"
发给您的方式是?直接回贴如何?
由于我知识面有限,有些部分没有翻译.