Dieses Dokument ist verfübar auf: English Castellano Deutsch Francais Nederlands Russian Turkce |
von Egon Willighagen Über den Autor: Egon Willighagen stieß im Jahre 1999 zum Niederländischen LF Team
und wurde im folgenden Jahr Second Editor. Er studiert an der Universität
von Nijmegen Chemie. Er spielt Basketball und wandert gerne.
|
Zusammenfassung:
Dieser Artikel beschreibt, was Debian User für die Community tun können: über Bugs berichten, wenn sie auf welche stoßen. Es wird erklärt, wie und warum man dies machen sollte.
Debian ist vor allem eine Linux-Distribution, aber es ist auch eine Gemeinschaft, die versucht, für das beste frei verfügbare Betriebssystem (OS) zu sorgen. Doch wer ist Teil dieser Gemeinschaft? Die Entwickler sind natürlich sehr wichtig, doch die User ebenso. Wenn Debian nicht benutzt würde, würden die Entwickler ihre Arbeit einstellen. Und macht es Spaß, an Software zu arbeiten, die keiner benutzt?
Diese Entwickler arbeiten jedoch alle auf freiwilliger Basis. Im Gegensatz zu den Entwicklern von Redhat und Suse, bei denen eben diese Firmen eine Anzahl von Entwicklern beschäftigen, werden Debian Entwickler nicht bezahlt. Und das bedeutet, daß ihre zeitlichen Ressourcen für die Entwicklungsarbeit begrenzt sind. "Ok", magst du dich jetzt fragen, "doch was hat das mit mir zu tun?" Als User kannst du die Entwickler unterstützen, indem du Bugs im Programm mitteilst, auf die du gestoßen bist.
Debian Pakete können zwei Arten von Bugs haben. Die erste Art sind richtige Software-Fehler. Da die Debian Entwickler meistens nicht die Autoren der Software selbst sind (sondern sie machen ein Debian Paket daraus), werden sie zwar manchmal versuchen, den Fehler zu finden, doch noch öfter werden sie die Fehlermeldung an den Software-Autor weiterleiten.
Die zweite Art von Fehlern sind Bugs im Debian Paket oder Bugs in der Installationsprozedur für die Software, die sich auf das Debian System bezieht. Diese Fehler sind vom Debian Entwickler zu finden, und das kann ein sehr zeitraubender Prozess sein.
Bugs kommen in Software häufig vor. Doch die Entwickler müssen ein stabiles Debian System erarbeiten, und Bugs sind ganz sicher kein Teil davon. Sie lassen sich aber nicht leicht finden. Sonst wären sie wahrscheinlich schon entfernt worden. Sie können auf verschiedene Weisen entdeckt werden:
Wenn sich die Software aufhängt, ist der Fehler offensichtlich, viel schwieriger wird es, der Ursache auf die Spur zu kommen. Der zweite Fehlertyp ist noch schwieriger zu finden. Der Grund ist, daß der Autor/Entwickler nicht alle denkbaren Ergebnisse austesten kann. Ein Beispiel: nehmen wir ein Rechner-Programm. Der Autor kann verschiedene Verhaltensweisen testen: 1+1 muß 2 ergeben, 2*5 muß 10 ergeben, usw. Aber er kann nicht alle möglichen Summen und Multiplikationen testen. Er wird z.B. nicht 3456733256677*77782882355 prüfen.
Doch ein User wird das möglicherweise tun. User tuen Dinge mit der Software (und tuen der Software Dinge an), die sich der Autor niemals träumen ließ. Da die Zahl der User die Anzahl der Software-Autoren und Debian Entwickler bei weitem übersteigt, werden sie über wesentlich mehr Bugs stolpern. Doch all diese Fehler werden keine schweren Fehler sein, das System wird nicht zusammenbrechen, und die Daten werden nicht zerstört werden. In den meisten Fällen werden diese Fehler nicht einmal Unannehmlichkeiten verursachen, denn in der Regel können sie umgangen werden.
Und als Mitglied der Community hast du fast die moralische Verpflichtung, dem Debian Entwickler die Fehlermeldung zu posten, damit die Software stabiler gemacht werden kann. Dies zu tun, darum bittet dieser Artikel. (Natürlich wird niemand viele Fehler auf einem Debian System finden :)
Was ist so besonderes daran, einen Bug-Report für Debian zu schreiben? Ein Aspekt ist, daß Debian ein ausgefeiltes Bug-Report System hat. Mitgeteilte Bugs werden auf einem zentralen Debug-Server gespeichert. Das Programm <reportbug> erleichtert diesen Prozeß und stellt etliche praktische Tools bereit.
Nehmen wir mal an, du hast einen Fehler in dem Programm <dia> (mein Lieblings Diagramm-Editor) gefunden. Laß uns mal den ganzen Prozeß des Fehlermeldens durchexerzieren. (Der tatsächliche Fehler, den ich gefunden habe, war kein Debian-Bug, sondern ein Fehler in der eigentlichen Software, deshalb denke ich, daß der Debian Entwickler die Meldung an die Autoren weiterleiten wird.)
Ich gebe auf der Kommandozeile das folgende ein (ich habe keine hübsche GUI für dieses Programm gefunden.):
egonw > reportbug Please enter the name of the package in which you have found a problem, or type one of these bug categories: base General bugs in the base system boot-floppies Bugs in the boot and root disks bugs.debian.org The bug tracking system, @bugs.debian.org ftp.debian.org Problems with the main FTP site (or mirrors) general Widespread problems (e.g., that many man pages are mode 755) kernel Problems with the kernel in general (otherwise: kernel-image) list archives The mailing list archives. lists.debian.org The mailing lists (debian-*@lists.debian.org) manual Bugs in the manual nonus.debian.org Problems with the non-us FTP site (or mirrors) project Problems related to Project administration www.debian.org Problems with the website (or mirrors) Enter a package: |
Laß uns ganze Arbeit machen und nicht eine dieser Kategorien angeben, sondern das eigentliche Paket. Dafür müssen wir die <reportbug>-Sitzung mit ^C (ctrl-C) abbrechen. Nun müssen wir das Paket finden, das die ausführbare Datei <dia> enthält. Wir gehen folgendermaßen vor:
egonw > whereis dia dia: /usr/lib/dia /usr/X11R6/bin/dia /usr/bin/X11/dia /usr/share/dia egonw > dpkg -S /usr/bin/X11/dia dpkg: /usr/bin/X11/dia not found. egonw > dpkg -S /usr/X11R6/bin/dia dia: /usr/X11R6/bin/dia |
Aufgrund des letzten Kommandos sehen wir, daß die ausführbare Datei in dem Paket <dia> enthalten ist (wenn du nicht sicher bist, prüfe es mit <dpkg -l dia>). Beachte, daß <whereis> vier Dateien ausgibt. Die erste Datei ist ein Library, die letzte ein Verzeichnis, und die beiden mittleren sind ausführbare Dateien. Das Paket <dia> liefert nur die zweite ausführbare Datei, die Herkunft der ersten ausführbaren Datei ist mir unbekannt.
Nun kennen wir das Paket mit dem Bug, wir können also schnell prüfen, ob wir dieses Paket per Download (ftp/http) oder per CD/floppy geholt haben:
egonw > apt-cache showpkg dia Versions: 0.86-helix1(/var/state/apt/lists/spidermonkey.helixcode.com_dis ributions_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/ tatus),0.83-2(/var/state/apt/lists/ftp.nl.uu.net_pub_linux_debian_dists_s able_main_binary-i386_Packages), Reverse Depends: task-helix-gnome,dia Dependencies: 0.86-helix1 - gdk-imlib1 (2 1.9.8.1) libart2 (2 1.2.0) libaudiofile0 (0 (null)) libc6 (2 2.1.2) libdb2 (2 1:2.4.14-7) libesd0 (18 0.2.16) libesd-alsa0 (2 0.2.16) libgdk-pixbuf2 (0 (null)) libglib1.2 (2 1.2.0) libgnome32 (2 1.2.0) libgnomesupport0 (2 1.2.0) libgnomeui32 (2 1.2.0) libgtk1.2 (2 1.2.0) libpng2 (0 (null)) libnpopt0 (0 (null)) libxml1 (0 (null)) xlib6g (2 3.3.6-4) zlib1g (2 1:1.1.3) gsfonts-x11 (0 (null)) 0.83-2 - gdk-imlib1 (2 1.9.8-2) libc6 (2 2.1.2) libglib1.2 (2 1.2.0) libgtk1.2 (2 1.2.6-1) libpopt0 (0 (ull)) libxml1 (0 (null)) libz1 (0 (null)) xlib6g (2 3.3.5) gsfonts-x11 (0 (null)) Provides: 0.86-helix1 - 0.83-2 - Reverse Provides: |
Hierdurch sehen wir, daß die neueste Version (0.86-helix1) von HelixCode installiert wurde (um HelixGnome zu installieren, gib ein <echo "#HelixGnome Update\ndeb http://spidermonkey.helixcode.com/distributions/debian unstable main" >> /etc/apt/sources.list; apt-get update; apt-get install task-helix-gnome>). Dieser Fehler sollte nicht an den Debian Entwickler gesendet werden, sondern an den HelixGnome Debian Packer - dies geschieht aber nicht mit dem <reportbug>-tool. Für die Belange dieses Artikels laß uns aber annehmen, daß die Version 0.83-2 installiert sei, das ist das Debian 2.2 Paket von <dia> und wurde (in meinem Fall) von einem Niederländischen FTP Mirror downgeloaded.
Ok, wir wissen jetzt also, daß der Fehler in dem Paket <dia-0.83-2.deb> steckt, das von einer Debian FTP Site downgeloaded wurde. Fahren wir mit der Übertragung des Reports fort. Wenn du nicht online bist, kannst du die Option <-b> hinzufügen, um zu verhindern, daß das Programm das Debian Bug Tracking System (BTS) sucht. Wenn du das BTS checkst (sehr empfehlenswert), kannst du prüfen, ob dieser Fehler nicht bereits gefunden und mitgeteilt wurde.
Nachdem der Paket-Name eingegeben und das BTS konsultiert wurde, werden die Paket-Abhängigkeiten überprüft. Das ist sehr wichtig. Die Software baut auf Libraries auf, und Fehler können ihre Quelle in einem Versionskonflikt haben. Das ist eigentlich der häufigste Grund für Fehler. Für diese Überprüfung wird keine Benutzereingabe benötigt.
Als nächstes wird das Programm um eine kurze Beschreibung des Fehlers bitten. Diese Beschreibung wird als Titel benutzt und muß daher sowohl umfassend als auch knapp sein. Später kann der Fehler ausführlich beschrieben werden. In meinem Fall war der Titel "dia file format incorrectly uses dia namespace". Einzelheiten und nähere Erklärung folgen später.
Nun mußt du eine Einschätzung des Fehlers geben. Fünf Klassen sind möglich:
|
Wähle eine passende Einstufung aus. <Normal> ist die übliche Einstufung, und die meisten Bugs in Debian 2.2 fallen in diese Kategorie. Dies kommt aufgrund der ausgiebigen Test-Zyklen von Debian, bei denen das komplette System getestet wird, bevor es der Öffentlichkeit übergeben wird. Beachte auch, daß du Wünsche nach neuen Features mit <reportbug> übermitteln kannst, obwohl das natürlich keine Fehler sind.
Nachdem du die Einstufung gewählt hast, wird ein Editor gestartet, der all die Informationen zeigt, die bisher gesammelt wurden:
Subject: dia file format incorrectly uses dia namespace Package: dia Version: 0.86-helix1 Severity: normal -- System Information Debian Release: 2.2 Architecture: i386 Kernel: Linux george 2.2.17 #1 Sun Jun 25 09:24:41 EST 2000 i586 Versions of packages dia depends on: ii gdk-imlib1 1.9.8.1-helix4 Gdk-Imlib is an imaging library fo ii libart2 1.2.4-helix3 The Gnome canvas widget ii libaudiofile0 0.1.9-0.1 The Audiofile Library ii libc6 2.1.3-10 GNU C Library: Shared libraries an ii libdb2 2:2.4.14-2.7.7.1.c The Berkeley database routines (ru ii libesd0 0.2.17-7 Enlightened Sound Daemon - Shared ii libgdk-pixbuf2 0.8.0-helix2 The GNOME GdkPixBuf library. ii libglib1.2 1.2.8-helix1 The GLib library of C routines ii libgnome32 1.2.4-helix3 The Gnome libraries ii libgnomesupport0 1.2.4-helix3 The Gnome libraries |
Jetzt ist der Zeitpunkt gekommen, zu dem du die Angaben zum Titel näher ausführen kannst. Zwischen den Zeilen <Severity: normal> und <-- System Information> kannst du nähere Einzelheiten und Umstände zum Auftreten des Fehlers schildern. Versuche, den Fehler zu reproduzieren und genau zu beschreiben, welche Schritte du gemacht hast, bis du auf den Fehler gestoßen bist. Dies kann den Entwicklern helfen, auf der Spur zu dem Bug einen Teil schlecht funktionierenden Codes aufzuspüren. In komplexeren Situationen könntest du auch das erwartete Ergebnis oder Verhalten angeben.
Schließlich fragt dich das Programm, ob die Fehlermeldung zur Bug-List gemailt werden soll. Wenn der Report gesendet wird, ist der Prozess für's erste beendet. Du hast der Gemeinschaft gerade etwas zurückgegeben.
Du kannst den Status des Bug-Reports verfolgen, indem du das <Debian Bug Track System> besuchst und das Paket auswählst, dem du den Report hinzugefügt hast. (Er wird aber frühestens nach 24 Stunden in dieser Liste auftauchen.) Und dann wartest du. Und hoffentlich wird der Bug bald repariert.
Leider gibt es noch kein graphisches User Interface für <reportbug>, doch jetzt kann ja jeder Debian User Bug-Reports mitteilen, unabhängig von der Funktionalität des Systems. Und ein Interface ist heutzutage schnell geschrieben. Ich bin sicher, bald eines zu sehen!
|
Die Redaktion
© Egon Willighagen, FDL LinuxFocus.org Einen Fehler melden oder einen Kommentar an LinuxFocus schicken |
Autoren und Übersetzer:
|
2001-01-26, generated by lfparser version 2.8