Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 10. September 2007, 00:00

Debmany - der Debian Manpage Tool Tipp

Vorstellung eines komfortablen Manpage-Betrachters für Debianpakete - egal ob es sich um eine lokale .deb-Datei, ein Paket aus dem Repository oder ein installiertes Paket handelt.

Hintergrund

Wer kennt das nicht: Schnell mal ein Debian-Paket installieren - aber welches? Die Paketbeschreibung ist zwar schon ganz ordentlich, für eine fundierte Entscheidung jedoch zu knapp. Hier müsste man sich entweder anderweitig informieren, auf sein Glück verlassen (und ggf. das Paket wieder entfernen) oder das Paket manuell herunterladen, entpacken und sich genauer ansehen.

Die Idee

Besser wäre es natürlich, wenn man die Manpages der Programme vor der Installation einsehen könnte. Hierzu gibt es bereits debman. Leider muss man hier den Namen der Manpage angeben. Dies gestaltet sich zumindest bei größeren Paketen, abgesehen von der Hauptmanpage, meist schwierig. Es muss also eine Auswahlmöglichkeit her.

Diese wäre auch bei schon installierten Paketen sehr praktisch. Beim Paket libcurses-ui-perl gibt es 30 Manpages (Debian Etch). Hier die richtige Manpage zu finden (z.B. Curses::UI::Dialog::Filebrowser) und sich dabei nicht zu vertippen ist nicht leicht. Mir schwebte eher ein debmany libcurses-ui-perl vor.

Die Umsetzung

Das brandneue Tool debmany hat folgende Features:

  • Auswahlmöglichkeit aus einer Liste der Manpages eines Paketes
  • Unterstützt werden folgende Orte: Lokale .deb Datei, Repository oder installiert
  • Bei Bedarf wird das Paket heruntergeladen
    • Optional wird ab einer bestimmten Größe gefragt
  • Liste der Manpages wird gefiltert (nur englisch)
    • Optional: Anzeige weiterer Sprachen
  • Flexible Wahlmöglichkeit des Anzeigeprogramms
    • Vorkonfigurierte Schalter für KDE-, GNOME- und Xfce-Anwender
Auswahl von debmany vim-common

Michael Arlt

Auswahl von debmany vim-common

Zur Auswahl der Manpage findet whiptail (bevorzugt wegen der etwas kompakteren Darstellung bei breiten Listen und wenig Platz) oder dialog Verwendung. Ein notwendiger Download erfolgt mittels curl.

Syntax (direkt aus der Manpage)

debmany [-m manpageviewer|-k|-g|-x] [-L Limit] [-l Sprache1[,...]] Paket|Paket.deb

Parameter -m manpageviewer

Setzt optional das Programm zum Betrachten der Manpages. Es muss .gz-Dateien unterstützen. Es ist zu beachten, dass der komplette Aufruf formuliert werden muss. "%s" wird durch den Pfad zur Manpage ersetzt. Wenn "%s" fehlt, wird " %s" an die Zeile angehängt. Der Aufruf muss in "" oder '' gefasst werden - siehe Beispiele. Bei der Benutzung eines grafischen Manpageviewers müssen Sie sicherstellen, dass Sie Zugriff auf den Desktop haben (ggf.: sux oder ssh mit x-forwarding)

Parameter -k # KDE Anwender

Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE benutzen - Kurzform von -m 'kfmclient exec man:%s'. kfmclient ist Teil des Paketes konqueror

Parameter -g # GNOME Anwender

Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie GNOME benutzen - Kurzform von -m 'gnome-open man:%s'. gnome-open ist Teil des Paketes libgnome2-0

Parameter -x # xdg Desktop Anwender (Xfce)

Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE/GNOME/Xfce benutzen - Kurzform von -m 'xdg-open man:%s'. xdg-open ist Teil des Paketes xdg-utils

Parameter -L Limit # Downloadgrenze → Nachfrage

Frage bei zu großen Dateien

Michael Arlt

Frage bei zu großen Dateien

Überschreitet eine Datei, die heruntergeladen werden muss, das Limit, so wird man gefragt, ob der Download stattfinden soll. Ohne Angabe einer Einheit ist die Angabe in Bytes. Durch Anhängen der Buchstaben K, M, G der T kann die Einheit geändert werden.

Parameter -l Sprache1[,...] # Zusätzliche Sprachen

Englische Manpages werden immer angezeigt. Wenn man mehr Sprachen sehen will, so kann man dies hier festlegen. Im Prinzip gibt man hier eine mit Komma getrennte Liste der Ordner aus den Manpage-Ordnern (/usr/share/man,/usr/X11R6/man) an - z.B. de,fr oder "*", wenn man alle Sprachen sehen will. Ordner mit ".xyz" am Ende (z.B. fr.ISO8859-1) werden automatisch durch die Auswahl (fr in diesem Beispiel) selektiert.

Beispiele (direkt aus der Manpage)

debmany 3dchess

Zeigt alle Manpages des Paketes 3dchess mit man an. Da es noch nicht installiert ist, wird es vom Repository bezogen - wenn nötig auch per Download.

debmany test.deb

Zeigt alle Manpages des lokalen Debian-Paketes ./test.deb mit man an.

debmany -k sc

Benutzt das bevorzugten Anzeigeprogramm (für KDE-Anwender)

debmany -g sc

Benutzt das bevorzugte Anzeigeprogramm (für GNOME-Anwender)

debmany -x sc

Benutzt das bevorzugte Anzeigeprogramm (für KDE/GNOME/Xfce-Anwender)

debmany -m 'konqueror man:%s' sc

Benutzt Konqueror als Viewer

alias debmany='debmany -l de -L 5M -k'; debmany -m man -l "*" foo

Setzt einen Alias, um die bevorzugten Optionen festzulegen. Diese können, wie man sieht, jederzeit überschrieben werden.

bash_completion

Um die Bedienung zu erleichtern, wurde eine bash_completion-Datei erstellt. Diese muss man sich nur nach ~/.bash_completion kopieren bzw. an eine bestehende Datei anhängen. Voraussetzung ist eine vorhandene /etc/bash_completion, da Funktionen hieraus verwendet werden.

Nach dem Start eines neuen Terminals steht die Vervollständigung z.B. der Paketnamen mit Nutzung der Tab-Taste zur Verfügung. Leider ist die Vervollständigung nicht perfekt. Wer Lust hat, ist eingeladen, sie entsprechend zu verbessern.

Fazit

Ich nutze das Tool schon seit einiger Zeit. Die Grundfunktion ist somit erprobt und funktioniert zuverlässig. In den letzten Versionen kamen optionale Funktionen, die per Parameter nutzbar sind, hinzu.

Schon nach kurzer Nutzungszeit möchte ich debmany nicht mehr missen. Besonders durch die Vorkonfiguration mittels eines Aliases findet man die gewünschten Manpages sehr schnell.

# ~/.bashrc (Ausschnitt)
alias debmany='debmany -l de -L 5M'

Quellen

Debmany hat es in das Paket debian-goodies (0.33) geschafft. Der Upload erfolgte am 30.8.2007. In Debian Unstable ist es schon vorhanden. Es ist also nur noch eine Frage der Zeit, bis es in Debian Testing landet.

Ab Debian Lenny wird es somit standardmäßig verfügbar sein. Bedingt durch die wenigen Abhängigkeiten sollte es auch unter Debian Etch zu installieren sein.

An dieser Stelle vielen Dank an den Maintainer Javier Fernandez-Sanguino für die Aufnahme in das Paket, Code-Review sowie den Patch.

  • Dieses Werk wurde unter der GNU General Public License veröffentlicht. Kopieren, Verbreiten und/oder Modifizieren ist erlaubt unter den Bedingungen der GNU GPL, veröffentlicht von der Free Software Foundation.

    - Weitere Informationen
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung