GNU/Linux >> Znalost Linux >  >> Debian

Kompletní průvodce hlášením chyb v Debian Linuxu

Hlášení chyb je jedním z mnoha způsobů, jak můžete pomoci Linuxu růst. Všechny distribuce svobodného softwaru, projekty mají různé systémy, ve kterých se chyby shromažďují, analyzují, označují a opravují v závislosti na počtu lidí, kteří znají zdrojový kód.

Protože miluji Debian, ukážu vám, jak v Debianu podávat hlášení o chybách.

Jak hlásit chyby v Debian Linuxu

Goto nástroj v Debianu pro hlášení chyb je Reportbug. Přál bych si, abych o tom věděl, když jsem začal s hlášením chyb, vyhnul bych se pálení žáhy pro sebe i pro správce.

Podívejme se, jak můžeme použít Reportbug pro hlášení chyb v Debian Linuxu.

Krok 1. Instalace hlášení chyb

K instalaci Reportbug použijte následující příkaz:

sudo aptitude install reportbug

Krok 2. Hlášení chyby:První spuštění

Jakmile nainstalujete Reportbug, musíte jej při prvním spuštění nakonfigurovat tak, aby jej bylo možné použít k vytváření hlášení o chybách.

Ke spuštění použijte níže uvedený příkaz.

reportbug

A pak spoustu dotazů, jak je vidět níže:

Vítejte v reportbugu! Protože to vypadá, že je to poprvé, co jste použili reportbug, konfigurujeme jeho chování. Tato nastavení budou uložena do souboru „/home/shirish/.reportbugrc“, který budete moci dále upravovat.
Vyberte prosím výchozí provozní režim pro reportbug.
1 nováček Nabízí jednoduché výzvy bez technických otázek.
2 standardní Nabídka rozsáhlejších výzev, včetně dotazů na věci, které jsou středně sofistikované od uživatele se očekává, že bude vědět o Debianu.
3 pokročilé Jako standard, ale předpokládá se, že víte o Debianu trochu více, včetně „příchozí“.
4 expert Obejít většinu ručních opatření a rutin předběžného třídění. Tento režim by neměli používat lidé, kteří nejsou obeznámeni se zásadami a operačními postupy Debianu.
Vyberte režim:[nováček] 2
Vyberte prosím výchozí rozhraní pro reportbug.
1 text Textově orientované uživatelské rozhraní konzoly
2 gtk2 A grafické uživatelské rozhraní (GTK+).
Vyberte rozhraní:1
Bude mít reportbug často přímý přístup k internetu? (Na tuto otázku byste měli odpovědět ano, pokud nevíte, co děláte, a neplánujete zkontrolovat, zda nebyly podány duplicitní zprávy prostřednictvím nějakého jiného kanálu.) [Y|n|q|?]? n
Jaké skutečné jméno by se mělo používat pro zasílání zpráv o chybách?
[shirish]>:
>Která z vašich e-mailových adres by měla být použita při odesílání zpráv o chybách? (Všimněte si, že tato adresa bude viditelná v systému sledování chyb, takže možná budete chtít použít webovou e-mailovou adresu nebo jinou adresu s dobrými možnostmi filtrování spamu.)
[[e-mail chráněný]]>[e-mail chráněný]
zobrazit rawreportbug-first-run.txt hostovaný s ❤ na GitHubu

Poznámky k prvnímu spuštění Reportbug:

A. Protože používám Debian už nějakou dobu, mohu přepínat mezi 2 a 3. Pro lidi, kteří jsou extrémně noví v hlášení chyb, by se mohli držet [1], který je zobrazen jako nováček a výchozí, stačí stisknout Enter.

b. Mezi textovým uživatelským rozhraním a rozhraním gtk2/3 považuji rozhraní gtk2/3 za neatraktivní a také zabírá trochu paměti, proto vždy volím 1. Pokud jste zvolili editor gtk2/3, níže uvedené pokyny jsou pro vás stále stejné, pouze uvidíte, že editor gtk zobrazuje to samé o něco krásnějším způsobem.

C. Část, kde Reportbug žádá o přístup k síti, to vždy popírám z praktického i bezpečnostního hlediska. Trochu podrobnější vysvětlení důvodů, proč tak dělám, by bylo sdíleno níže.

d. Nakonec, když se vás zeptá na jméno, pokud se vám líbí stávající název (přebírá se z proměnné [email protected]), stiskněte Enter, v případě, že chcete, aby to bylo něco jiného, ​​zadejte jméno, pod kterým se má zobrazovat.

Krok 3. Práce s Gmailem

Při prvním spuštění Reportbug by se zeptal na nastavení pošty:

Máte "agenta pro přenos pošty" (MTA ) jako Exim, Postfix nebo SSMTP nakonfigurované na tomto počítači pro odesílání pošty na Internet? [y|N|q|?]?n
Zadejte jméno svého hostitele SMTP. Obvykle se nazývá něco jako "mail.example.org" nebo "smtp.example.org". Pokud potřebujete použít jiný než výchozí port, použijte alternativní formát :. Pokud žádný nemáte nebo nevíte, stiskněte ENTER, takže bude použit hostitel SMTP Debianu.
>
Zadejte název svého proxy serveru. Tento parametr by měl používat pouze v případě, že jste za firewallem. Argument PROXY by měl být naformátován jako platná adresa URL HTTP, včetně (je-li to nutné) čísla portu; například http://192.168.1.1:3128/. Pokud žádný nemáte nebo nevíte, stiskněte ENTER.
>
zobrazit rawreportbug-first-run-webmail-quirks.txt hostovaný s ❤ by GitHub

První otázka se ptá, zda máte nějaký software, který mu umožní automaticky odesílat e-maily.

Pokud jste nastavili desktopového e-mailového klienta, jako je Evolution nebo Thunderbird, vyberte ano. Jinak ne.

Jakmile je zapsán výchozí soubor předvoleb, uloží se na /home/shirish/.reportbugrc. Konfiguraci můžete později změnit úpravou tohoto souboru.

Na konzoli můžete použít CTRL+C kdykoli ukončit Reportbug.

Krok 5. Zjištění názvu balíčku aplikace z binárního souboru

Dovolte mi vzít příklad z Aiselriot. Je to jedna z karet GTK, kterou moje máma hodně hraje. Nyní, když je problém s hrou, jak zjistím, v jakém balíčku mám podat hlášení o chybě?

Takže první věc, kterou udělám, když se snažím odstraňovat problémy s aplikací s grafickým uživatelským rozhraním, je vzít její ikonu a umístit ji na panel a podívat se na její vlastnosti, stejně jako zde –

Nyní vím, že název aplikace. není Aiselriot, ale sol a cesta, kde je aplikace umístěna, je na /usr/games/sol .

Nyní zkusme najít, jak se balíček jmenuje –

dpkg -S /usr/games/sol

Výstup je:

aisleriot: /usr/games/sol

Máme štěstí, že se balíček také nazývá aiselriot, ale to se nestává vždy.

Pokračujeme, nyní nám nahlásíme první hlášení o chybě. Vzhledem k tomu, že používám Debian testing/stretch/brzy, abych byl za několik měsíců stabilní, vložím tam hlášení o chybě.

Krok 6. Použití Reportbug k vytvoření hlášení o chybě

Nyní potřebujeme balíček s problémem/chybou, kterou musíme nahlásit komunitě Debianu.

Mám balíček piuparts, který vykazoval příznaky problému, kvůli kterému jsem se obrátil na Reportbug, jak je uvedeno v podstatě:

[$] reportbug piuparts –severity=normal
*** Vítejte v reportbugu. použít ? za pomoc při výzvách. ***
Poznámka:Zprávy o chybách jsou veřejně archivovány (včetně e-mailové adresy odesílatele ).
Zjištěná znaková sada:UTF-8
Pokud to není správné, změňte národní prostředí.
Použití 'shirish' jako adresy odesílatele.
Získávání stavu pro piuparts…
Ověřování integrity balíčku…
Odešle zprávu do Debianu (za lsb_release).
Správcem pro piuparts je 'piuparts developers team'.
Vyhledávání závislostí piuparts…
Získávání změněných konfiguračních souborů…
Krátce popište problém (povoleno max. 100 znaků). Toto bude předmět e-mailu s chybou, takže shrnutí udržujte co nejstručnější, pro
příklad:„selhání odeslání e-mailu“ nebo „nezačíná - q volba zadaná" (zadáním Ctrl+c ukončíte reportbug bez nahlášení chyby)
> Adekvátní přehledy obsolete-conffile pro piuparts
Přepisování předmětu na 'piuparts:Adekvátní zprávy zastaralé-conffile pro piuparts'?
Použije se na tento přehled některý z následujících bodů
1 d-i Tato chyba je relevantní pro vývoj debian-installeru.
2 ipv6 Tato chyba ovlivňuje podporu pro internetový protokol verze 6.
3 l10n Tato chyba hlásí problém s lokalizací/internacionalizací.
4 lfs Tato chyba ovlivňuje podporu pro velké soubory (přes 2 gigabajty).
5 nováček Tato chyba má známé řešení, ale správce požaduje implementaci někoho jiného to.
6 patch Přidáváte opravu, která tento problém vyřeší.
7 upstream Tato chyba se týká upstream části balíčku.
8 žádné
Vyberte značky:(po jednom) [žádné]
zobrazit rawpiuparts reportbug bug-reporthosted with ❤ by GitHub

Nyní mi dovolte vysvětlit, jak věci fungují. Při instalaci balíčků používám nástroj zvaný adekvátní (což je nástroj pro kontrolu balíčků Debianu). O adekvátním budu hovořit podrobně v některém budoucím příspěvku na blogu.

Reportbug dělá, že získává a analyzuje všechny informace, které o balíčku má, aby věděl, zda pokračovat nebo ne.

Nyní nástroj adekvátně běží na pozadí po celou dobu. Jedna z jeho hlavních úloh nastává hned na samém konci instalace balíčku, např. pro piuparts mi to sdílí/ukázalo toto –

adequate found packaging bugs
 -----------------------------
piuparts: obsolete-conffile /etc/piuparts/scripts/post_setup_experimental

což mi řeklo, že balíček piuparts má zastaralý conffile. Conffile je zkratka pro konfigurační soubor.

Takže první příkaz, který udělám, kdykoli najdu chybu, kterou stojí za to nahlásit, je udělat toto –

reportbug piuparts --severity=normal

Uvádí/říká o balíčku, který má problém, v tomto případě piuparts.

Kladení závažnosti na jakoukoli chybu je ošemetná záležitost. Pokud z balíčku nemám dost silné pocity a nade vší pochybnost nevím, že chyba je skutečně závažná, nezvyšuji závažnost. Toto je moje osobní etika, také o něco méně práce pro správce.

Jak již bylo řečeno, většina správců by se na chybu podívala bez ohledu na závažnost, kterou uvedete. Měl jsem od správců, aby mi rychle odpověděli, i když jsem nahlásil chyby v seznamu přání a správci se mi nevrátili. MIA (Missing-In-Action) i po nahlášení závažných chyb. Ukládání a správná konverzace s správcem je technická i společenská aktivita.

Po dotazu předmětu se reportbug zeptá/poskytne různé možnosti, pokud platí jedna z podmínek. Pokud si myslíte , že vaše chyba je ovlivněna nebo ovlivňuje jednu z výše uvedených věcí na seznamu , můžete použít kteroukoli . Pokud se například chystáte sdílet opravu k vyřešení problému, vyberete 6 nebo jednu z ostatních. Pokud žádný z nich nepotřebujete, jednoduše zadejte a pokračujte.

Jakmile je výše uvedené hotovo, bude to chvíli trvat a dostaneme něco podobného této sdílené podstatě:

Předmět:piuparts:dostatečné zprávy zastaralý konfigurační soubor pro piuparts
Balík:piuparts
Verze:0.75
Závažnost:normální
Vážený správci,
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
** End of the template – remove these template lines **
— System Information:
Debian Release:9.0
APT prefers testing
APT policy:(600, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (1, 'experimental-debug'), (1, 'experimental'), (1, 'unstable')
Architecture:amd64 (x86_64)
Foreign Architectures:i386
Kernel:Linux 4.9.0-1-amd64 (SMP w/2 CPU cores)
Locale:LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell:/bin/sh linked to /bin/dash
Init:systemd (via /run/systemd/system)
Versions of packages piuparts depends on:
ii debootstrap 1.0.87
ii debsums 2.2
ii dpkg 1.18.18
ii lsb-release 9.20161125
ii lsof 4.89+dfsg-0.1
ii piuparts-common 0.75
ii python-debian 0.1.30
pn python:any
Versions of packages piuparts recommends:
ii adequate 0.15.1
Versions of packages piuparts suggests:
ii schroot 1.6.10-3
— no debconf information
view rawdefault reportbug piuparts templatehosted with ❤ by GitHub

Now what this does is, it gives an idea to the maintainer of the state of your system. As you all know, almost all GNU/Linux distributions and the packages therein are based on a complex set of relationships with other packages. The maintainer needs to know what version of the package you were using, which other packages were there, what version were they at, apart from knowing that the integrity of the package hasn’t been tampered with in any way.

Now you need to fill in the banks –

I usually remove/delete cut the following, if you are a new user you could just answer the questions below and your bug report would be ready.

Step 7. The final changes made to spend the report

And in its place, I put the details as being shared right here:

Subject:piuparts:adequate reports obsolete conffile for piuparts
Package:piuparts
Version:0.75
Severity:normal
User:[email protected]
Usertags:obsolete-conffile adequate
Dear Maintainer,
Adequate reports broken obsolete-conffile –
[$] adequate piuparts
piuparts:obsolete-conffile /etc/piuparts/scripts/post_setup_experimental
Maybe you could use what pabs (Paul Wise) did in #815563, in that the
proper thing to do would be –
Use the dpkg-maintscript-helper support provided by dh_installdeb to remove such similar obsolete conffiles on upgrade
Also https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files
You can also see manpage of dh_installdeb via debhelper package which is the same thing.
I ran the same command as he did –
[$] pkg=piuparts; adequate $pkg; dpkg-query -W -f='${Conffiles}\n' $pkg | grep obsolete
piuparts:obsolete-conffile /etc/piuparts/scripts/post_setup_experimental
/etc/piuparts/scripts/pre_remove_40_find_obsolete_conffiles
dce83ee504ba336d8a2930fb6053635c
/etc/piuparts/scripts/post_setup_experimental
f7a1f3d45dc43106d1cd9b124b7c1ca8 obsolete
Please fix the above.
— System Information:
Debian Release:9.0
APT prefers testing
APT policy:(600, 'testing'), (500, 'unstable-debug'), (500,
'testing-debug'), (1, 'experimental-debug'), (1, 'experimental'), (1,
'unstable')
Architecture:amd64 (x86_64)
Foreign Architectures:i386
Kernel:Linux 4.9.0-1-amd64 (SMP w/2 CPU cores)
Locale:LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell:/bin/sh linked to /bin/dash
Init:systemd (via /run/systemd/system)
Versions of packages piuparts depends on:
ii debootstrap 1.0.87
ii debsums 2.2
ii dpkg 1.18.18
ii lsb-release 9.20161125
ii lsof 4.89+dfsg-0.1
ii piuparts-common 0.75
ii python-debian 0.1.30
pn python:any
Versions of packages piuparts recommends:
ii adequate 0.15.1
Versions of packages piuparts suggests:
ii schroot 1.6.10-3
— no debconf information
view rawgistfile1.txthosted with ❤ by GitHub

Some more info. now – These two tags signal/tell the maintainers few things –

 User: [email protected]

The first tag is signaling that the bug being raised is part of debian-qa efforts.

Usertags: obsolete-conffile adequate

The second tag is telling the tool we have used and one of the common issues under which it has come -in this case obsolete-conffile.

There are few common and uncommon use-cases that adequate looks into. As shared before, will need another blog post to share about it in detail.

The other thing I’m telling/sharing the maintainer is s/he should be looking into debhelper (a toolkit for debian/rules) and to look for specific bits therein.

Tip – Paul Wise, better known as pabs in Debian community. He is a prolific contributor to Debian. As you can see from his wiki page and the secondary apps. He always has a never-ending list of applications, packages that would be interesting to package alongwith things that could be/need to be improved. I dunno if he has done any mentoring or not, do see signs of a good and goofy mentor in him. I sometimes ask, sometimes steal his ideas to help in Debian QA :)

Now, that the bug-report is complete, I have to send it via gmail.com . If you have enabled MTA (Mail Transfer Agent) and don’t have a gmail.com you can just send and it will be done. If on the other hand, you haven’t enabled MTA (like me) and like to do things yourself, log on to your gmail account, hit compose and then –

Step 8. The final step

To - [email protected]
 Subject - piuparts: adequate reports obsolete conffile for piuparts

Body of your mail should start with Package

something like this –

You might have noticed some labels, they are just to help me be somewhat organized as after you have reported some bugs it can become chaotic to know what’s going on. Gmail’s labels and filters make things somewhat sanish with the amount of mail I receive.

At that point, make sure to recheck the mail once more before clicking the send mail button. I usually click on save draft, review it once or twice before sending it over.

If you are satisfied click send and your bug-report will be sent to Debian BTS .

Step 9. Getting acknowledgment from Debian BTS server saying the bug has reached them.

Usually, within minutes I get a short acknowledgment mail from the Debian BTS, like in the gist being shared

Look at the time-stamp given, just 3 minutes apart from when the mail was sent. I sent the bug mail on 05:03 and got the automated reply saying everything went fine on 05:06 itself.

What I look for into the acknowledgment mail is the bug number as that is how I come to know how things are going with the bug. #854317

Post bug-reporting cycle.

Coincidentally, as can be seen, the package maintainer somehow was around the time when I filed the bug. I do know the importance of piuparts in the debian ecosystem but I didn’t think Andreas will act so quickly, so now probably the next point release or even bug-fix release will have the fix. As can be seen though, Andreas seems to be a busy bee seeing the number of packages he’s maintaining/co-maintaining, besides uploading Non-Maintainer Uploads (NMU) and QA uploads.

I hope I have given enough insight so you know what to do as and when things go wrong.

Tip – Nowadays, I usually follow couple of rules before filing a bug. First check the bts for existing list of bugs, for e.g. piuparts bugs page (as also shared by Simon Tatham above). If the bug is not listed there, more often than not, it the package has not too many dependencies, and I know there aren’t any configuration files that I might have to recreate then I usually purge the package and install the package afresh. If adequate still finds a fault, I usually report it. I don’t do that though for obsolete conffiles as they usually happen when you are upgrading from version x.1 to x.2 or something like that.

Using such simple tips I save time and energy for myself as well as the maintainer of a package.

At first, it may take sometime, after a while, the whole thing may take 10-15 minutes or even less, depending on the package in which the bug is found, the bug itself, replication of the bug etc.

That’s about it to make a bug-report in Debian using Reportbug.

Hopefully, you have gotten some idea the steps to finding bugs and reporting them. Please post any queries you have in the comments below and I’ll try my best to answer/share whatever little I know.



Debian
  1. Jak nainstalovat Elasticsearch na Debian Linux

  2. Kompletní průvodce pro použití AsciiDoc v Linuxu

  3. Instalujte Linux Mint 19 na VirtualBox:Kompletní průvodce

  1. Instalace Firefoxu Debian

  2. Jak nainstalovat Void Linux:Kompletní průvodce krok za krokem

  3. Kompletní průvodce LVM v Linuxu pro začátečníky

  1. Jak změnit název hostitele na Debian Linuxu

  2. Jak nainstalovat Logstash na Debian Linux

  3. Jak nainstalovat Slack na Debian Linux