Die Qualität von Debian-Paketen mit Bordmitteln prüfen

Aus LinuxUser 10/2015

Die Qualität von Debian-Paketen mit Bordmitteln prüfen

© ioqs, 123RF

Hinter den Kulissen

Das Debian-Projekt legt alle Details zum Entwicklungsstand von Paketen inklusive der Diskussionen offen. Die passenden Tools geben Auskunft über den Zustand eines Softwarepakets.

Das Debian-Projekt legt sehr großen Wert auf die hohe Qualität der vielen Softwarepakete. Das zeigt sich zum einen in den verschiedenen Stadien der Entwicklung (stable, testing, unstable) und den damit verbundenen, harten Kriterien, die die Entwickler an die Pakete anlegen, bis diese den entsprechenden Status erreicht. Zum anderen wird es im täglichen Umgang deutlich, wie etwa beim Administrieren des Systems: Die Informationen zu den Veränderungen und zum aktuellen Zustand eines Paketes sind stets zugänglich.

Sie ersehen daraus, ob und welcher Verantwortliche sich um ein Problem kümmert und wie weit die Arbeit daran bereits fortgeschritten ist. Auf diese Informationen greifen Sie vergleichsweise unkompliziert über E-Mail, spezielle Mailinglisten und die Kommandozeile mithilfe Debian-spezifischer Pakete zu; zusätzlich stehen intuitiv gestaltete Erweiterungen für den Webbrowser bereit.

Via Webbrowser

Als zentrale Anlaufstelle im Web dient das Debian Bug Tracking System BTS [1]. Darin finden Sie alle Berichte zu Fehlern. Jeder Eintrag besitzt eine eindeutige Nummer, über die er sich stets referenzieren lässt. Mithilfe der Formulare auf der BTS-Webseite recherchieren Sie nach den Daten, zum Beispiel anhand des Paketnamens oder des Betreuers (Package Maintainer), sowie nach dem Status der Arbeit. Abbildung 1 zeigt die Informationen zum Paket aptsh.

Abbildung 1: Das Bug Tracking System von Debian gibt ausführlich Auskunft über Fehler, die Anwender oder Entwickler in einem Paket gefunden haben.

Abbildung 1: Das Bug Tracking System von Debian gibt ausführlich Auskunft über Fehler, die Anwender oder Entwickler in einem Paket gefunden haben.

Jeder Eintrag enthält eine Reihe von zusätzlichen Feldern. Dazu gehören Markierungen (Tags) und der Betreff des Fehlerberichts. Zu den Tags zählen der Schweregrad des Fehlers wie n (normal), w (Wunschliste), m (kleinerer Fehler), i (wichtig), S (ernsthaft), G (schwerwiegend) und C (kritisch). Die drei letztgenannten Schweregrade gelten als “release critical” (veröffentlichungskritisch) und werden daher in Debian BTS mit Großbuchstaben in roter Farbe angezeigt (Abbildung 2).

"Abbildung

Mit einem Mausklick erhalten Sie detailliertere Informationen (Abbildung 3). Der vollständige Fehlerbericht mitsamt dem kompletten Verlauf der Kommunikation und des Changelogs zum Vorgang verbirgt sich hinter dem Betreff des Fehlerberichts.

Abbildung 3: Das BTS von Debian liefert sehr detaillierte Informationen zu jedem Eintrag, inklusive Angaben zum Einsender der entsprechenden Daten.

Abbildung 3: Das BTS von Debian liefert sehr detaillierte Informationen zu jedem Eintrag, inklusive Angaben zum Einsender der entsprechenden Daten.

Schneller navigieren

Kennen Sie die Fehlernummer, so bietet Ihnen das BTS einen Weg an, direkt über das Eingabefeld des Browsers zu einem Fehlerbericht oder Paket zu gelangen. Die Tabelle “Vereinfachte Navigation” fasst die entsprechenden Möglichkeiten zusammen.

Möchten Sie die URL nicht eintippen, sondern stattdessen nur ein wenig mit der Maus klicken, bietet sich dazu das Plugin Debian Buttons für den Webbrowser Firefox/Iceweasel an [2]. Es integriert eine Reihe zusätzlicher Schalter in die Werkzeugleiste. Diese Schaltflächen ermöglichen den Zugriff auf spezifische Inhalte der Debian-Webseite. Dazu zählt das bereits erwähnte Debian BTS, die Übersicht über die Pakete, die Recherche anhand von Quell- und Binärpaketen sowie Informationen zu Fehlermeldungen und Betreuern.

Debian Buttons verbirgt sich im Paket xul-ext-debianbuttons [3], das Sie bei Bedarf über die Paketverwaltung mittels Apt-get oder Aptitude installieren. Danach konfigurieren Sie die Werkzeugleiste des Browsers und ergänzen die Schalter, die Sie verwenden wollen. Abbildung 4 beinhaltet die drei Knöpfe Information zu Binärpaketen, Bug Tracking System (BTS) und Package Tracking System (PTS) [4]. Aus Letzterem wurde in Debian 8 “Jessie” der Link zum Debian Tracker [5].

"Abbildung

Die Schalter werten Informationen aus, die sich in der Zwischenablage befinden. Markieren Sie also zuerst eine Fehlernummer oder den Namen eines Pakets mit der Maus und drücken Sie anschließend den entsprechenden Button. So gelangen Sie via Browser zur gewünschten Seite. Dabei spielt es keine Rolle, ob Sie ein führendes Hash-Zeichen (#) oder nachfolgendes Komma mit ausgewählt haben – das Plugin filtert solche Zeichen heraus.

Kommandozeile

Auf der Kommandozeile helfen Ihnen die Werkzeuge Lintian [6], Adequate [7], Apt-listbugs [8], Popbugs [9] und RC-Alert [10]. Während Sie mithilfe von Lintian und Adequate ganze Pakete bezüglich der Debian-Richtlinien auf ihre Korrektheit überprüfen, werten Apt-listbugs, Popbugs und RC-Alert die Einträge im Debian BTS aus.

Lintian gehört seit Längerem zum festen Repertoire der Betreuer und dient im Wesentlichen dazu, noch vor der Freigabe und Veröffentlichung eines Pakets Fehler aufzuspüren. Der Name des Pakets leitet sich vom englischen “lint” für Fussel und der Endung “ian” von Debian ab. Lintian arbeitet mit Paketen (Endung .deb) und listet typische Fehler samt Schweregrad und Debian Policy Violations auf.

Dabei stehen die Präfixe E für Fehler, W für Warnung, I für Information sowie P für Pedanterie. Selbst Schreibfehler in den enthaltenen Hilfe-Dateien bleiben nicht unentdeckt. Abbildung 5 zeigt das Ergebnis für das Paket postgresql-client, wobei hier die Optionen für Ausführlichkeit (-v), das farbige Hervorheben von wichtigen Stellen (--color auto), Informationen und Fehler (-I -E) sowie besonders strenge Kontrolle (--pedantic) zum Einsatz kamen.

Abbildung 5: Das Tool Lintian hilft Entwicklern, ein Paket auf Verstöße gegen die Debian Policies zu untersuchen, wobei es viele Aspekte mit einbezieht.

Abbildung 5: Das Tool Lintian hilft Entwicklern, ein Paket auf Verstöße gegen die Debian Policies zu untersuchen, wobei es viele Aspekte mit einbezieht.

Bereits auf dem System installierte Pakete überprüfen Sie mittels Adequate. Obwohl offiziell erst seit Debian 8 “Jessie” enthalten, gibt es auch eine zurückportierte Version für Debian 7 “Wheezy”. Im Beispiel aus Listing 1 hat das Programm herausgefunden, dass das Paket pdfstudio keine Informationen zum Copyright enthält. Da das Paket nicht aus einer offiziellen Debian-Paketquelle stammt, kommt so etwas schon mal vor.

Listing 1

$ adequate pdfstudio
pdfstudio: missing-copyright-file /usr/share/doc/pdfstudio/copyright

Apt-listbugs bezieht die Fehlerberichte aus dem Debian BTS und gibt das Suchergebnis aus. Es benötigt dazu mindestens den Namen eines Pakets. Möchten Sie zusätzlich die Kategorie des Fehlers spezifizieren, hilft Ihnen dabei der Parameter -s, gefolgt von den gewünschten Kategorien.

Das Beispiel in Listing 2 demonstriert das für das Paket coreutils und die drei höchsten Klassen von Fehlern, critical (kritisch), grave (gravierend) und serious (ernsthaft). Die Ausgabe enthält neben der Fehlernummer den Betreff und den Status zum Fehler. Im vorliegenden Fall ist der Fehler noch als ungelöst eingestuft.

Listing 2

$ apt-listbugs -s critical,grave,serious list coreutils
Laden der Fehlerberichte ... Erledigt
»Found/Fixed«-Informationen werden ausgewertet ... Erledigt
grave Fehler von coreutils (-> ) <ungelöst>
 #743955 - coreutils: corrupted files on heavily fragmented ext3 and ext4 partitions
Zusammenfassung:
 coreutils(1 Fehler)

Echte Show-Stopper

Die beiden Werkzeuge Popbugs und RC-Alert aus den Paketen debian-goodies beziehungsweise devscripts analysieren die Installation in Bezug auf Fehler, die einer Veröffentlichung eines Releases des Gesamtsystems im Wege stehen. Solche RC-Bugs (“release critical bugs”) sollten in einer stabilen Debian-Veröffentlichung nicht mehr auftreten; auf Installationen wie Debian “Testing” und “Unstable”, die per Definition noch Fehler enthalten können, lassen sie sich nicht ausschließen.

Sowohl Popbugs als auch RC-Alert greifen direkt auf das Debian BTS zu und benötigen dafür eine Verbindung zum Internet. Während Popbugs alle Pakete validiert, akzeptiert RC-Alert Schalter, mit denen Sie bei Bedarf die Suche sowohl entsprechend der Distribution, als auch anhand der Tags [11] genauer eingrenzen [12].

In Abbildung 6 sehen Sie das Ergebnis eines Tests mit Popbugs, das dazu ein zusätzliches Fenster im Webbrowser öffnet. Listing 3 zeigt hingegen die Arbeitsweise von RC-Alert bei einer Recherche nach Fehlern im Paket dpkg. Dabei grenzt der Aufruf die Suche mithilfe des Schalters --include-dists TUE auf die drei Veröffentlichungen “Testing”, “Unstable” und “Experimental” ein.

Abbildung 6: Analyse mit Popbugs auf einem Debian 7 "Wheezy".

Abbildung 6: Analyse mit Popbugs auf einem Debian 7 “Wheezy”.

Listing 3

$ rc-alert --include-dists TUE dpkg
Package: dpkg
Bug:     774794
Title:   dpkg: Add breaks for new trigger cycles
Flags:   [        ] (none)
Dists:   [T] (testing)
Package: dpkg
Bug:     775124
Title:   dpkg-statoverride with unknown group breaks any subsequent package installation
Flags:   [        ] (none)
Dists:   [T] (testing)

Helfende Hände

Immer wieder taucht die Frage auf, welche Möglichkeiten es für Außenstehende gibt, sich an der Arbeit an einem Paket zu beteiligen. Ab Debian 8 “Jessie” steht dazu das Paket how-can-i-help [13] bereit. Es dient als Pendant zur entsprechenden Seite im Debian-Wiki [14] und listet auf, welche Pakete aktuell gerade Hilfe benötigen, sprich: wo Sie die Chance haben, etwas beizutragen (Listing 4).

Verwenden Sie Aptitude, Apt oder Apt-get zur Installation und zum Aktualisieren von Paketen, so klinkt sich das Programm darin über einen Hook ein. Danach zeigt es Ihnen nach jeder Installation die neuen Pakete an, die weitere Hilfe benötigen. So bleiben Sie stets auf dem Laufenden.

Listing 4

$ how-can-i-help
======  How can you help?  (doc: http://wiki.debian.org/how-can-i-help ) ======
New packages where help is needed, including orphaned ones (from WNPP):
 - libjconv - https://bugs.debian.org/419090 - O (Orphaned)
 - wdg-html-validator - https://bugs.debian.org/390833 - O (Orphaned)
 - cowsay - https://bugs.debian.org/777101 - RFA (Maintainer looking for adopter)
 - lynx-cur - https://bugs.debian.org/773942 - ITA (Someone working on adoption)
 - psutils - https://bugs.debian.org/777699 - ITA (Someone working on adoption)
 - tiff - https://bugs.debian.org/777695 - ITA (Someone working on adoption)
 - w3c-dtd-xhtml - https://bugs.debian.org/739086 - ITA (Someone working on adoption)
New bugs suitable for new contributors (tagged 'gift'):
 - gnome-icon-theme-symbolic - https://bugs.debian.org/777038 - gnome-icon-theme-symbolic: description's URL broken (404)
 - reportbug - https://bugs.debian.org/777279 - reportbug: The graphical UI of Reportbug doesn't check for duplicate bug reports

Fazit

Möchten Sie hinter die Kulissen von Debian blicken, gibt Ihnen die Distribution etliche nützliche Hilfsmittel an die Hand. Somit sind Ihnen über einen Aufruf oder mithilfe der Werkzeuge zum Verwalten der Pakete alle Details zugänglich.

Danksagung

Der Autor bedankt sich bei Axel Beckert für seine Anmerkungen und Hinweise im Vorfeld dieses Artikels.

Über den Autor

Frank Hofmann arbeitet in Berlin im Büro 2.0 als Dienstleister mit Spezialisierung auf Druck und Satz (http://www.efho.de/). Er ist Mitgründer des Schulungsunternehmens Wizards of FOSS und koordiniert seit 2008 das Regionaltreffen der LUGs aus der Region Berlin-Brandenburg.

Infos

[1] Debian Bug Tracking System (BTS): https://www.debian.org/Bugs/

[2] Debian Buttons: http://icedeb.ktnx.net

[3] Addon Debianbuttons: https://packages.debian.org/jessie/xul-ext-debianbuttons

[4] Debian Package Tracking System (PTS): https://packages.qa.debian.org

[5] Debian Tracker: https://tracker.debian.org

[6] Lintian: https://packages.debian.org/jessie/lintian

[7] Adequate: https://packages.debian.org/jessie/adequate

[8] Apt-listbugs: https://packages.debian.org/jessie/apt-listbugs

[9] Debian-goodies: https://packages.debian.org/jessie/debian-goodies

[10] Devscripts: https://packages.debian.org/jessie/devscripts

[11] Debtags-Projekt: http://debtags.debian.net

[12] Debtags: Frank Hofmann, “Dschungelführer”, LU 06/2012, S. 22, https://www.linux-community.de/25926

[13] How-can-i-help: https://packages.debian.org/jessie/how-can-i-help

[14] Debian Wiki: http://wiki.debian.org/how-can-i-help

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2015 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben