Как сообщить об ошибке в Debian с помощью программы reportbug
Сообщения об ошибках следует писать на английском языке, поскольку именно он принят для общения в Проекте. Если вы затрудняетесь написать сообщение об ошибке на английском языке, то обратитесь за помощью к команде русскоязычной поддержки, [email protected], либо к русской команде локализации, [email protected].
Мы рекомендуем вам сообщать об ошибках в Debian с помощью программы
reportbug
.
Программа reportbug по умолчанию установлена в большинстве систем. Если в вашей системе она недоступна, то её можно установить с помощью инструмента управления пакетами, доступного в вашей системе.
Программу reportbug можно запустить из системного раздела меню или
выполнив команду reportbug
в командной строке.
Далее вам будет предложено шаг за шагом пройти процесс составления сообщения об ошибке.
Если у вас есть вопросы, на которые в интерактивных запросах вы не получили ответов, вы можете воспользоваться документацией ниже или задать вопрос в пользовательской рассылке Debian.
Как сообщить об ошибке в Debian с помощью электронной почты (расширенное использование reportbug)
Что важно знать перед отправкой вашего сообщения об ошибке
К какому пакету относится ваше сообщение об ошибке?
Вы должны знать пакет, на который должно быть оформлено ваше сообщение об ошибке. Смотрите в этом примере, как найти эту информацию. (Вы будете использовать её, чтобы проверить, не было ли сообщено об этой ошибке кем-либо ранее.)
Если вы не можете определить, к какому пакету относится проблема, отправьте, пожалуйста, письмо в список рассылки пользователей Debian
На случай, если проблема относится не к какому-либо пакету, а к общим услугам Debian, существует несколько псевдопакетов, или даже списки рассылки, которые можно использовать, чтобы довести до нас эту информацию.
Было ли сообщение об ошибке послано кем-либо ранее?
Вы должны убедиться, что ваше сообщение об ошибке не было уже кем-либо отправлено ранее. С помощью опции пакета в форме поиска ошибок вы можете посмотреть, какие сообщения об ошибках уже были отправлены для определённого пакета. Если сообщение о данной ошибке уже существует с #<номером>, то вместо составления нового сообщения об ошибке вам следует оставлять комментарии в виде писем, отправленных на адрес <номер>@bugs.debian.org.
На каждую ошибку посылайте отдельное сообщение
Не посылайте информацию о нескольких ошибках в одном сообщении, особенно если они не связаны друг с другом или относятся к разным пакетам.
Не посылайте ошибки авторам программ
Если вы отправляете сообщение об ошибке в Debian, то не посылайте самостоятельно ещё и копию авторам программы — возможно, что ошибка существует только в Debian. Если будет необходимо, сопровождающий пакета сам перенаправит сообщение об ошибке авторам.
Отправка сообщений об ошибках по электронной почте
Вы можете сообщить об ошибке в Debian, послав письмо по адресу
[email protected]
в формате, описанном ниже. Программа reportbug
(см. выше) должным образом оформит ваше письмо
(пожалуйста, используйте эту программу!).
Заголовки
Как и при составлении любого другого письма, ему нужно дать
ясную, содержательную Тему (заголовок Subject
). Указанная тема
будет использоваться в BTS как первоначальное название ошибки,
так что, пожалуйста, попытайтесь сделать её информативной!
Если вы хотите послать копию вашего сообщения об ошибке дополнительным получателям (например, в список рассылки), то вам необходимо использовать для этого не обычные заголовки писем, а другой метод, описанный ниже.
Псевдозаголовки
Первая часть сообщения об ошибке состоит из псевдозаголовков, которые содержат информацию о пакете и его версии. Первая строка тела сообщения должна содержать псевдозаголовок:
Package: <имя_пакета>
Замените <имя_пакета>
именем
пакета, в котором содержится ошибка.
Второй строкой письма должна быть:
Version: <версия_пакета>
Замените <версия_пакета>
версией того пакета, о котором
вы пишете сообщение. Не добавляйте сюда ничего кроме версии, поскольку система отслеживания
ошибок использует это поле для определения того, какие выпуски подвержены данной ошибке.
Вам следует правильно задать строку Package
псевдозаголовка,
чтобы система отслеживания ошибок смогла доставить сообщение сопровождающему
пакета. Ниже приведён пример того, как находить эту
информацию.
Информацию о других псевдозаголовках вы можете найти в списке Дополнительных псевдозаголовков
Тело сообщения
Пожалуйста, включите в ваше сообщение:
- Точный и полный текст любых сообщений об ошибках, выводимых на экран или в журнал. Это очень важно!
- Точное и подробное описание всего, что вы вводили или делали для воспроизведения проблемы.
- Описание неправильного поведения: какого в точности поведения вы ожидаете, и что вы наблюдаете. Хорошим способом предоставить такую информацию будет являться текстовая копия демонстрационного сеанса работы.
- Предлагаемое решение, или даже заплата, если таковые у вас есть.
- Подробности конфигурации программы, содержащей проблему. Включите полные тексты её конфигурационных файлов.
- Версии всех пакетов, от которых зависит пакет с ошибкой.
- Какую версию ядра вы используете (введите
uname -a
), версию разделяемой библиотеки C (введитеls -l /lib/*/libc.so.6
илиapt show libc6 | grep ^Version
), а также любые другие подробности относительно вашей системы Debian, если вы считаете их полезными. Например, если у вас проблемы со сценарием на языке Perl, вы, возможно, захотите указать версию двоичного файла `perl' (введитеperl -v
илиdpkg -s perl | grep ^Version:
). - Подробности относительно аппаратного обеспечения вашей системы, которые, как вы считаете, могут оказаться полезными. Если вы сообщаете о проблеме с драйвером какого-либо устройства, то приведите список всего аппаратного обеспечения вашей системы, поскольку проблемы часто бывают вызваны конфликтами номеров IRQ или адресов ввода/вывода.
- Если у вас установлена программа reportbug,
то вывод команды
reportbug --template -T none -s none -S normal -b --list-cc none -q <пакет>
также будет полезным, так как содержит вывод специфичных для сопровождающего скриптов и информацию о версии.
Включите все подробности, которые кажутся вам относящимися к делу, — вряд ли ваше сообщение окажется слишком большим из-за чрезмерного количества информации. Если вы не можете привести много подробностей, то включите в сообщение все файлы, которые вы используете при воспроизведении проблемы (если они велики, то выложите их на публично доступный веб-сайт, если это возможно).
Более подробно о том, как вы можете помочь разработчикам решить вашу проблему, можно прочесть в статье How to Report Bugs Effectively.
Пример сообщения об ошибке
Сообщение об ошибке, включая заголовок и псевдозаголовок, выглядит примерно так:
To: [email protected] From: [email protected] 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.
Отправка копий сообщений об ошибках по другим адресам
Иногда необходимо отправить копию сообщения об ошибке кому-то ещё,
кроме debian-bugs-dist
и сопровождающего пакета (которым
обычно данное письмо и направляют).
Вы могли бы это сделать, включив другие адреса в поле Копия (CC)
,
но в этом случае копии не будут содержать номера сообщения
об ошибке в полях Reply-To
и Subject
.
Если получатели решат ответить на это письмо, они скорее всего оставят
в заголовке адрес [email protected]
. В результате этого их письма
будут заново зарегистрированы в системе отслеживания ошибок как сообщения о новых ошибках.
Это приведёт к появлению большого количества дублирующихся сообщений.
Правильный способ добиться желаемого — использовать заголовок
X-Debbugs-CC
. Добавьте строку наподобие следующей в заголовок вашего сообщения:
X-Debbugs-CC: [email protected]
Это заставит систему отслеживания ошибок отправить копию вашего
сообщения не только в список debian-bugs-dist
, но и по адресу(ам)
в строке X-Debbugs-CC
.
Если вы хотите отправить копии сообщения на несколько адресов, добавьте их
в виде одной строки X-Debbugs-CC
, разделяя запятыми.
Не посылайте такие копии по адресам других сообщений об ошибках,
поскольку они будут заблокированы механизмом предотвращения циклической
доставки сообщения. На самом деле, в этом случае смысла в использовании
X-Debbugs-CC
практически нет, поскольку добавленный номер
ошибки всё равно будет заменён другим. Используйте вместо этого обычный
заголовок CC
.
Эту возможность часто бывает полезно совместить с отправкой
на quiet
— см. ниже.
Дополнительные псевдозаголовки
Уровни важности
Если ваше сообщение касается очень серьёзной ошибки или, наоборот, является лишь запросом о желательной функциональности, то вы можете установить при отправке сообщения соответствующий уровень важности ошибки. Тем не менее, это не обязательно, и если вы не присвоите ошибке уровень важности, сопровождающие пакета сделают это сами (или исправят неправильно установленный уровень).
Чтобы задать уровень важности, поместите в псевдозаголовок строку наподобие следующей:
Severity: <важность>
Замените <важность> одним из возможных значений, как описано в дополнительной документации.
Присвоение значений меткам
Вы можете устанавливать метки ошибок, о которых вы сообщаете. Например,
если вы включаете в сообщение заплату, то было бы разумно установить метку
patch
. Тем не менее, это не обязательно, и разработчики
установят все необходимые метки сами.
Чтобы установить метку, поместите в псевдозаголовок строку наподобие следующей:
Tags: <метки>
Замените <метки> одним из возможных значений, как описано в дополнительной документации. Метки могут разделяться запятыми, пробелами или и теми, и другими.
User: <имя_пользователя> Usertags: <метки_пользователя>
Замените <метки_пользователя> одной или несколькими метками. Отделяйте метки между собой запятыми, пробелами, или и теми и другими. Если вы указали <имя_пользователя>, эти пользовательские метки будут установлены для данного имени. Иначе в качестве имени пользователя будет использоваться почтовый адрес отправителя.
Вы можете выставить пользовательские метки для нескольких пользователей во время отправки сообщения об ошибке, включив в ваше сообщение несколько псевдозаголовков User. Каждый псевдозаголовок Usertags устанавливает пользовательские метки для предшествующего ему псевдозаголовка User. Это особенно полезно для установки пользовательских меток для команды с несколькими пользователями, установки пользовательских меток для нескольких команд или установки архитектурных пользовательских меток для ошибок, касающихся нескольких архитектур.
User: <имя_первого_пользователя> Usertags: <метки_первого_пользователя> User: <имя_второго_пользователя> Usertags: <метки_второго_пользователя>
Установка Перенаправлено (Forwarded)
Forwarded: [email protected]
помечает новую представленную ошибку как переправленную на [email protected]. Смотрите в документации разработчика Запись о том, что вы передали сообщение об ошибке.
Объявление владельца
Owner: [email protected]
показывает, что [email protected] теперь является ответственным за исправление этой ошибки. Смотрите в документации разработчика Изменение ответственного за исправление.
Пакет с исходным кодом
Source: foopackage
эквивалентно Package:
для ошибок, присутствующих в пакете с исходным
кодом, из которого создаётся пакет foopackage. Для большинства ошибок в большинстве пакетов вам
не понадобится эта опция.
Управляющие команды
Control: control commands
Позволяет работать любой команде, которая должна быть отправлена на адрес
[email protected]
, если она отправлена на адрес [email protected]
или
[email protected]
. -1 изначально указывает на текущую
ошибку (то есть ошибку, созданную письмом на submit@, или ошибку, сообщение о которой
отправлено на nnn@). Пожалуйста, посмотрите документацию
по серверу управления для получения дополнительной информации по
применяемым управляющим командам.
Например, следующий псевдозаголовок в сообщении, отправленном на адрес
[email protected]
:
Control: retitle -1 this is the title Control: severity -1 normal Control: summary -1 0 Control: forwarded -1 https://bugs.debian.org/nnn
привел бы к переименованию ошибки 12345, изменению её важности, установке краткого описания и пометке её как пересланной.
Заголовки X-Debbugs
Наконец, в случае если ваш почтовый клиент
не позволяет вам редактировать заголовки, вы можете установить
какие угодно заголовки X-Debbugs-
в
псевдозаголовках.
Дополнительная информация
Другие адреса отправки сообщений (маловажные или многочисленные ошибки)
Если ошибка маловажная, например опечатка в документации или незначительная
проблема сборки, пожалуйста, задайте уровень важности minor
и отправьте сообщение по адресу [email protected]
, а не
[email protected]
. maintonly
перешлёт сообщение только
сопровождающему пакета, не отправляя его в списки рассылки BTS.
Если вы отправляете много сообщений одновременно, вам определённо стоит
использовать [email protected]
, чтобы не создавать чрезмерного
трафика в списках рассылки BTS. Перед отсылкой большого количества
сообщений о похожих ошибках, вы можете также отправить краткое изложение
в список debian-bugs-dist
.
Если вы хотите отправить в систему отслеживания ошибок сообщение об
ошибке, которое ранее уже отправили сопровождающему, то вы можете использовать
адрес [email protected]
. Сообщения, отправленные по этому адресу,
никуда не пересылаются, а только сохраняются.
Если вы используете эти адреса для отправки сообщений, система отслеживания
ошибок установит поле Reply-To
всех пересылаемых сообщений таким образом,
что ответы будут по умолчанию обрабатываться так же, как и исходное сообщение.
Например: ответы на сообщение, отправленное по адресу
maintonly
, будут посланы по адресу
nnn[email protected]
, а не
nnn@bugs.debian.org
, если, конечно, отвечающий не поменяет
адрес вручную.
Подтверждения
Обычно система отслеживания ошибок возвращает отправителю сообщения
подтверждение того, что его сообщение о новой ошибке или дополнительная
информация к старой получены. Если вы не хотите получать такие сообщения,
включите в письмо заголовок или псевдозаголовок X-Debbugs-No-Ack
(содержание заголовка значения не имеет).
Если вы отправили сообщение о новой ошибке с таким заголовком, то вам придётся
самостоятельно узнать номер ошибки через веб-интерфейс.
Имейте в виду, что этот заголовок не подавляет отправку подтверждений
сервером [email protected]
, поскольку эти подтверждения могут
содержать сообщения об ошибках, которые следует прочесть и действовать
в соответствии с ними.
Борьба со спамом и пропадающая почта
В системе отслеживания ошибок реализован весьма широкий набор правил,
предназначенных для того, чтобы спам не распространялся через BTS.
Хотя мы и стараемся сократить число ошибочных срабатываний, они всё-равно
случаются. Если вы подозреваете, что ваше письмо по ошибке удалено, свяжитесь
с [email protected]
.
Другой распространённой причиной того, почему почта не попадает в BTS, является
использование отправителем адресов, соответствующих FROM_DAEMON из procmail,
включающему адреса, такие как [email protected]
. Если вы подозреваете,
что ваш адрес совпадает с заданными в FROM_DAEMON, для проверки
обратитесь к procmailrc(5),
и затем пошлите письмо ещё раз с адреса, который не соответствует FROM_DAEMON.
Сообщения об ошибках в неизвестных пакетах
Если система отслеживания ошибок не знает, кто сопровождает данный
пакет, она отправит сообщение в список debian-bugs-dist
, даже
если используется адрес maintonly
.
При отправке сообщений по адресам [email protected]
или
nnn[email protected]
вам следует убедиться,
что сообщение об ошибке сопоставлено правильному пакету, поместив
в первую строку сообщения правильную строку Package
или
используя сервер [email protected]
для сопоставления правильного пакета.
Использование dpkg
для нахождения
пакета и его версии для составления сообщения
Когда вы используете reportbug
для сообщения об ошибке, например, в
grep
, то следующая команда автоматически выберет правильный пакет и позволит сразу
же начать писать сообщение: reportbug --file $(which
grep)
Кроме того, вы можете найти пакет,
который установил команду, используя dpkg --search
. Вы
можете узнать версию установленного пакета, используя
dpkg --list
или dpkg --status
.
Например:
$ 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 <[email protected]> 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
Другие полезные команды и пакеты
Утилита querybts, доступная из того же пакета, что и reportbug, предоставляет удобный текстовый интерфейс к системе отслеживания ошибок.
Пользователи emacs могут использовать команду debian-bug, предоставленную
пакетом debian-el
. Вызываемая M-x debian-bug, она запросит
всю необходимую информацию таким же образом, как это делает reportbug
.
Другие страницы системы отслеживания ошибок:
- Главная страница системы отслеживания ошибок.
- Инструкция по созданию сообщений об ошибках.
- Доступ к журналам системы отслеживания ошибок.
- Информация для разработчиков по системе отслеживания ошибок.
- Информация разработчикам по работе с системой через электронную почту.
- Краткая справка по почтовым серверам.
- Запрос сообщений об ошибках по электронной почте.
Debian BTS administrators <[email protected]>
Debian bug tracking system
Copyright © 1999 Darren O. Benham, 1997, 2003 nCipher Corporation Ltd,
1994-1997 Ian Jackson.