6.45. Man-DB-2.4.4

Man-DB enthält Programme zum Finden und Anzeigen von Hilfeseiten (Man-pages).

Geschätzte Kompilierzeit: 0,2 SBU
Ungefähr benötigter Festplattenplatz: 9 MB

6.45.1. Installation von Man-DB

Zuerst nehmen Sie vier Anpassungen an den Quellen von Man-DB vor.

Die erste ändert den Standort der mitgelieferten übersetzten Hilfeseiten, damit diese sowohl im traditionellen als auch im UTF-8-Format verfügbar sind:

mv man/de{_DE.88591,}
mv man/es{_ES.88591,}
mv man/it{_IT.88591,}
mv man/ja{_JP.eucJP,}
sed -i 's,\*_\*,??,' man/Makefile.in

Die zweite Anpassung ist eine sed-Ersetzung, mit deren Hilfe die Zeilen „/usr/man“ „/usr/local/man“ in man_db.conf gelöscht werden. Dadurch werden redundante Ergebnisse vermieden, wenn Programme wie z. B. whatis verwendet werden:

sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.in

Die dritte Anpassung kümmert sich um Programme, die Man-DB zur Laufzeit finden sollte, aber derzeit noch nicht installiert sind:

cat >> include/manconfig.h.in << "EOF"
#define WEB_BROWSER "exec /usr/bin/lynx"
#define COL "/usr/bin/col"
#define VGRIND "/usr/bin/vgrind"
#define GRAP "/usr/bin/grap"
EOF

Das Programm col ist ein Teil von Util-Linux, lynx ist ein textbasierter Web-Browser (siehe BLFS Installationsanleitung), vgrind wandelt Programmquellen in Groff-Eingaben um und grap ist nützlich für Typographiezeichen in Groff-Dokumenten. Normalerweise werden vgrind und grap zum Anzeigen von Handbuchseiten nicht benötigt. Sie sind weder Teil von LFS noch von BLFS, jedoch sollten Sie in der Lage sein, diese nach der Installation von LFS selbst zu installieren.

Wenden Sie abschließend einen Patch auf die Quellen an, um Ausgabefehler zu vermeiden, wenn die Anzeige einer Hilfeseite durch Drücken von "q" vorzeitig beendet wird.

patch -Np1 -i ../man-db-2.4.4-fixes-1.patch

Bereiten Sie Man-DB zum Kompilieren vor:

./configure --prefix=/usr --enable-mb-groff --disable-setuid

Die Bedeutung der configure-Parameter:

--enable-mb-groff

Dadurch verwendet man die Groff-Geräte „ascii8“ und „nippon“ zur Darstellung bzw. Formatierung von nicht-ISO-8859-1-kodierten Hilfeseiten.

--disable-setuid

Dadurch wird das Setuid-Bit auf dem Programm man für den Benutzer man deaktiviert.

Kompilieren Sie das Paket:

make

Dieses Paket enthält keine Testsuite.

Installieren Sie das Paket:

make install

Einige Pakete enthalten Man-Pages im UTF-8-Format, die von dieser Version von man nicht angezeigt werden können. Das folgende Skript macht es möglich, einige davon in die erwarteten Kodierungen der unteren Tabelle umzuwandeln. Man-DB erwartet die Hilfeseiten in einem Format wie unten gelistet und wandelt sie zur Laufzeit für die Darstellung automatische in die jeweilig aktive Locale um. Auf diese Weise können die Hilfeseiten sowohl im traditionellen als auch im UTF-8-Format angezeit werden. Das Skript ist nur beschränkt einsetzbar beim Erstellen eines LFS-Systems und verzichtet daher auf Fehlerprüfung und unvorhersagbare Namen für temporäre Dateien:

cat >> convert-mans << "EOF"
#!/bin/sh -e
FROM="$1"
TO="$2"
shift ; shift
while [ $# -gt 0 ]
do
        FILE="$1"
        shift
        iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
        mv .tmp.iconv "$FILE"
done
EOF
install -m755 convert-mans  /usr/bin

Weitere Informationen zur Kompression von Man- und Info-pages erhalten Sie im BLFS-Buch unter http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/compressdoc.html.

6.45.2. Nicht-Englische Hilfeseiten in LFS

Die Linux-Distributionen speichern die Hilfeseiten in unterschiedlichen Formaten ab. RedHat beispielsweise verwendet UTF-8, Debian setzt sprachspezifische 8-Bit-Kodierungen ein. Das für leider zu Inkompatibilitäten von Hilfeseiten, die für unterschiedliche Distributionen gedacht sind.

LFS setzt auf die gleichen Konventionen wie Debian. Das liegt daran, dass Man-DB nichts mit Hilfeseiten in UTF-8 anfangen kann. Des Weiteren ist Man-DB für unsere Zwecke dem herkömmlichen Man vorzuziehen, weil es ohne weitere Einrichtung für jede Locale funktioniert und nicht zuletzt, weil es derzeit keine voll funktionsfähige Implementierung der RedHat-Konvention gibt. RedHats groff formatiert bekanntermaßen Text falsch.

Weiter unten wird der Zusammenhang zwischen Sprachcodes und der erwarteten Kodierung einer Hilfeseite aufgelistet. Man-DB wandelt sie automatisch für die Darstellung in die richtige Locale um.

Tabelle 6.1. Erwartete Zeichenkodierung für Hilfeseiten

Sprache (Code) Kodierung
Dänisch (da) ISO-8859-1
Deutsch (de) ISO-8859-1
Englisch (de) ISO-8859-1
Spanisch (es) ISO-8859-1
Finnisch (fi) ISO-8859-1
Französisch (fr) ISO-8859-1
Irisch (ga) ISO-8859-1
Galician (gl) ISO-8859-1
Indonesisch (id) ISO-8859-1
Isländisch (is) ISO-8859-1
Italienisch (it) ISO-8859-1
Niederländisch (nl) ISO-8859-1
Norwegisch (no) ISO-8859-1
Portugiesisch (pt) ISO-8859-1
Schwedisch (sv) ISO-8859-1
Tchechisch (cs) ISO-8859-2
Kroatisch (hr) ISO-8859-2
Ungarisch (hu) ISO-8859-2
Japanisch (ja) EUC-JP
Koreanisch (ko) EUC-KR
Polnisch (pl) ISO-8859-2
Russisch (ru) KOI8-R
Slovakisch (sk) ISO-8859-2
Türkisch (tr) ISO-8859-9

[Anmerkung]

Anmerkung

Hilfeseiten in Sprachen, die sich nicht in der Tabelle befinden, werden nicht unterstützt. Norwegisch funktioniert aufgrund des Übergangs von no_NO zu nb_NO nicht und Koreanisch funktioniert aufgrund des unvollständigen Groff-Patches nicht.

Wenn ein Quellpaket die Hilfeseiten im erwarteten Format mitliefert, so können diese einfach nach /usr/share/man/<Sprachcode> kopiert werden. Beispielsweise können französische Hilfeseiten (http://ccb.club.fr/man/man-fr-1.58.0.tar.bz2) mit dem folgenden Kommando installiert werden:

mkdir -p /usr/share/man/fr
cp -rv man? /usr/share/man/fr

Falls die Programm-Entwickler die Hilfeseiten in UTF-8 ausliefern (z. B. „RedHat“) anstatt der oben aufgelisteten Kodierung, dann müssen sie vor der Installation von UTF-8 in die aufgelistete Kodierung umgewandelt werden. Dazu können Sie convert-mans verwenden. Die spanischen Hilfeseiten beispielsweise (http://ditec.um.es/~piernas/manpages-es/man-pages-es-1.55.tar.bz2) installieren Sie mit diesen Kommandos:

mv man7/iso_8859-7.7{,X}
convert-mans UTF-8 ISO-8859-1 man?/*.?
mv man7/iso_8859-7.7{X,}
make install
[Anmerkung]

Anmerkung

man7/iso_8859-7.7 muss von der Umwandlung ausgeschlossen werden, weil diese Datei bereits im Format ISO-8859-1 vorliegt (das ist ein Fehler bei der Paketierung in man-pages-es-1.55). Zukünftige Versionen benötigen diese Auslassung nicht.

6.45.3. Inhalt von Man-DB

Installierte Programme: accessdb, apropos, catman, convert-mans,lexgrog, man, mandb, manpath, whatis und zsoelim

Kurze Beschreibungen

accessdb

Gibt den Inhalt der whatis-Datenbank in einer normal lesbaren Form aus.

apropos

Durchsucht die whatis-Datenbank und gibt kurze Beschreibungen zu den Kommandos aus, die die angegebene Zeichenkette enthalten.

catman

Erzeugt oder aktualisiert die vorformatierten Hilfeseiten.

convert-mans

Formatiert Hilfeseite so um, dass Man-DB sie darstellen kann.

lexgrog

Zeigt eine einzeilige Zusammenfassung über eine Hilfeseite an.

man

Formatiert die angeforderte Hilfeseite und zeigt sie an.

mandb

Erzeugt und aktualisiert whatis-Datenbanken.

manpath

Zeigt den Inhalt von $MANPATH oder (falls $MANPATH nicht festgelegt ist) einen passenden Suchpfad basierend auf den Einstellungen in man.conf und der Umgebung des Benutzers an.

whatis

Durchsucht die whatis-Datenbank und zeigt eine kurze Beschreibung zu den Systemkommandos an, die das übergebene Stichwort als separates Wort enthalten.

zsoelim

Liest Dateien und ersetzt Zeilen der Form .so <Datei> > mit dem tatsächlichen Inhalt von <Datei>.