Apport

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Ein Terminal öffnen

  3. ⚓︎ mit Root-Rechten arbeiten

Inhaltsverzeichnis
  1. Installation
    1. Debug-Pakete
  2. Benutzung
    1. Steuerung der Dienste
    2. Bedienung bei automatischer Versendung
    3. Fehlermeldung manuell senden
  3. Konfiguration
  4. Links

Fehler_melden/bug_logo.png Apport ist ein von Canonical 🇬🇧, der Firma hinter Ubuntu, entwickeltes Programm. Es fängt System- und Programmabstürze ab, sammelt Informationen über den Absturz und die Betriebssystemumgebung zur Fehlerbehebung und kann diese in einer standardisierten Form an das Fehlerverfolgungssystem von Ubuntu senden.

Es bietet dem Nutzer außerdem die Möglichkeit einen Fehler in einem Paket zu melden, wozu es wiederum so viele Informationen wie möglich darüber sammelt.

Apport arbeitet mit dem Hintergrunddienst Whoopsie zusammen, der für das automatische Versenden von Absturzberichten verantwortlich ist.

Hinweis:

Canonical verspricht in den Absturzberichten alle persönlichen Daten zu entfernen. Man sollte vor dem Versand immer überprüfen, ob diese Automatik gemäß den eigenen Vorstellungen richtig gearbeitet hat.

Installation

Apport und Whoopsie sind in allen Desktop-Varianten von Ubuntu bereits vorinstalliert[1].

Zur Funktion benötigt wird:

Befehl zum Installieren der Pakete:

sudo apt-get install apport 

Oder mit apturl installieren, Link: apt://apport

Für das optionale automatische Versenden zusätzlich:

Befehl zum Installieren der Pakete:

sudo apt-get install whoopsie whoopsie-preferences 

Oder mit apturl installieren, Link: apt://whoopsie,whoopsie-preferences

Je nach Desktop optionale GUIs:

Debug-Pakete

Wenn ein bestimmtes Programm hartnäckig Fehler produziert, kann man optional die Debug-Symbole des betroffenen Programms mit PAKETNAME-dbg installieren. Beim nächsten Fehler kann Apport so aussagekräftigere Informationen sammeln.

Benutzung

Steuerung der Dienste

Normalerweise startet der Dienst Apport automatisch beim Booten des Systems. Dies beruht auf dem Umstand, dass Systemd für Apport automatisch eine Systemd-Unit apport.service aus dem SystemV-Init-Skript /etc/init.d/apport generiert und diese startet. Die Systemd-Unit apport.service ruft dann wiederum das Skript auf und dieses prüft anhand der Datei /etc/default/apport, ob es Apport überhaupt starten soll. Apport wird nur gestartet, wenn diese Datei nicht existiert oder die Shell-Variable enable=1 nicht auf etwas anderes setzt. Wegen dieses Mechanismus ist es unsinnig, die Systemd-Unit apport.service per disable/enable für den automatischen Start zu konfigurieren. Man kann den Dienst aber mit Root-Rechten[3] über systemctl manuell starten und stoppen:

Den automatischen Start des Dienstes verhindern bzw. reaktivieren kann man beispielsweise mit diesen Befehlen:

Alternativ, aber nicht mischbar mit vorgenannten Befehlen, funktioniert auch eine Maskierung der Unit über Systemd. Man kann dann aber den Dienst nicht manuell starten:

Die Datei /var/lib/apport/autoreport, welche in der GUI konfigurierbar ist, bestimmt ob ein tatsächlich generierter Absturzbericht automatisch versendet wird. Die Systemd-Unit apport-autoreport.path prüft die Existenz dieser Datei und wenn sie existiert, wird die Systemd-Unit apport-autoreport.service gestartet, diese weckt den Dienst Whoopsie.

Für den Dienst Whoopsie wird normalerweise von Systemd eine Überwachung des Ordners für die Fehlerberichte gestartet. Sobald hier Apport einen neuen Bericht ablegt, startet das Initsystem den Dienst Whoopsie. Dies kann man ändern:

Bedienung bei automatischer Versendung

Wenn Apport läuft, meldet es sich bei einem Programmabsturz automatisch. In einem Fenster kann das Senden des Fehlerberichts bestätigt oder abgebrochen bzw. Details angezeigt werden. In den LTS-Versionen von Ubuntu werden automatisch erstellte Berichte im Hintergrund auf einen eigenen Server hochgeladen. Ist gerade keine Internetverbindung vorhanden, wird der Bericht hochgeladen, wenn der Benutzer das nächste Mal bei bestehender Internetverbindung dem Senden eines Berichtes zustimmt.

Bei den Nicht-LTS-Versionen und den offiziellen Derivaten wird hingegen beim Senden Launchpad geöffnet, wo man mit einem eigenen Konto den Versand abschließen muss.

Experten-Info:

Apport speichert die Fehlerberichte in Dateien mit der Endung .crash im Verzeichnis /var/crash/. Durch eine weitere Datei mit der Endung .upload teilt es dem Dienst whoopsie mit, dass der Bericht über eine verschlüsselte Verbindung (HTTPS) auf den Server daisy.ubuntu.com hochgeladen werden soll.

Um einen Fehlerbericht nachträglich nochmals zu Betrachten, öffnet man ihn entweder mit einem Editor[3], oder aber, grafisch aufbereitet mit Code-Faltung, mittels:

sudo -H /usr/share/apport/apport-gtk /var/crash/DATEINAME.crash 

Fehlermeldung manuell senden

Man kann mit Apport auch Fehler über das Terminal melden. Allerdings wird hierfür ein bereits bestehendes Launchpad-Konto benötigt.

Konfiguration

In Ubuntu kann man in der GUI unter

vorgeben, ob Fehlerberichte nie, manuell, oder automatisch gesendet werden sollen. Obwohl dies in den benutzerspezifischen Einstellungen eingeordnet ist, handelt es sich um eine Systemeinstellung. Benutzer, die den Status Administrator haben, können diese Einstellung ändern; andere Benutzer dürfen es versuchen, werden dann aber zur Eingabe des Passwortes eines Administrators aufgefordert. Umgekehrt verstellt auch das System diese Einstellung.

Achtung!

Diese Einstellung ist missverständlich: Eine Einstellung auf den Wert nie verhindert unter Umständen nicht das automatische Versenden von Absturzberichten.

Mit dieser Einstellung in der GUI kann man die Datei /var/lib/apport/autoreport anlegen oder löschen. Entscheidend dafür sind aber Zustandswechsel:

Zustandswechsel von Problemberichtserstattung
Bedienung Wirkungen
nie / automatisch -> manuell Die Datei /var/lib/apport/autoreport wird entfernt.
nie / manuell -> automatisch Eine leere Datei /var/lib/apport/autoreport wird angelegt.
manuell / automatisch -> nie Es geschieht nichts mit einer Datei /var/lib/apport/autoreport.
Das System löst selber auch ggf. zeitverzögert um eine Minute diesen Wechsel aus, wenn es nichts zu berichten gibt.