6.47.1. Installation von Man-DB
LFS erzeugt /usr/man
und /usr/local/man
als symbolische Verknüpfungen.
Entfernen Sie diese Einträge aus man_db.conf
; 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
Bereiten Sie Man-DB zum Kompilieren vor:
./configure --prefix=/usr --libexecdir=/usr/lib \
--sysconfdir=/etc --disable-setuid \
--enable-mb-groff --with-browser=/usr/bin/lynx \
--with-col=/usr/bin/col --with-vgrind=/usr/bin/vgrind \
--with-grap=/usr/bin/grap
Die Bedeutung der configure-Parameter:
-
--disable-setuid
-
Dadurch wird das Setuid-Bit auf dem Programm man für den Benutzer
man
deaktiviert.
-
--enable-mb-groff
-
Dieses Parameter teilt man-db mit, dass die von Debian
gepatchte Version von groff
vorliegt.
-
--with-...
-
Diese vier Parameter legen einige Standard-Programme fest.
Das Programm col ist ein Teil von
Util-Linux-ng, 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.
Kompilieren Sie das Paket:
make
Dieses Paket enthält keine Testsuite.
Installieren Sie das Paket:
make install
6.47.2. Nicht-Englische Hilfeseiten in LFS
Einige Pakete enthalten nicht-englische Man-pages. Diese werden nur
dann korrekt angezeigt, wenn sie im richtigen Ordner gespeichert
sind und die Kodierung verwenden, wie „man“ sie
erwartet. Die verschiedenen Linux-Distributionen verwenden
diesbezüglich allerdings unterschiedliche Richtlinien in Bezug auf
die Kodierung, in der die Man-pages gespeichert werden (d. h.
unterschiedliche Versionen von man in verschiedenen
Konfigurationen und mit unterschiedlichen Patchen).
Debian beispielsweise erwartete früher die russischen Man-pages in
der Kodierung KOI8-R im Ordner /usr/share/man/ru
. Mittlerweile sucht deren
man-Programm
(Man-DB) zusätzlich nach
UTF-8-kodierten russischen Man-pages im Ordner /usr/share/man/ru.UTF-8
. Andererseits verwendet
Fedora ausschließlich UTF-8-kodierte Man-pages. Russische Man-pages
finden sich unter /usr/share/man/ru
und Fedoras man-Programm ignoriert
/usr/share/man/ru.UTF-8
. Viele andere
Distributionen ignorieren die Kodierung der Man-pages vollständig,
wodurch der Anwender eine Mischung aus unterschiedlich kodierten
Man-pages erhält. Wenn man nun die angeforderte Man-page
zur Darstellung verarbeitet, stellt es die Inhalte wie eingerichtet
dar, wodurch sie vollkommen unleserlich werden, weil die Kodierung
nicht dem entspricht, was für die verwendete Lokalisierung erwartet
wird.
Die Uneinigkeit bezüglich der erwarteten Kodierungen von Man-pages
bei den Distributionen hat bei den Paket-Betreuern zu Verwirrung
geführt. So enthalten einige Pakete Man-pages in UTF-8, andere
wiederum in anderen, zum Teil veralteten Kodierungen. man sucht nach Man-pages in der
Lokalisierung des Anwenders. Man-DB verwendet eine eingebaute Hilfstabelle
(siehe unten), um die Kodierung der Man-pages zu bestimmen, die für
die Lokalisierung des Benutzers gefunden wurden, falls die
Speicherorte den Namen der Kodierung nicht über ihren Namen
preisgeben. Beispielsweise weiß Man-DB aufgrund des Ordnernamens
„.UTF-8“, dass alle Man-pages in diesem Ordner
(/usr/share/man/fr.UTF-8
) in
UTF-8-Kodierung vorliegen. Basierend auf der eingebauten Tabelle
wiederum ist bekannt, dass die Man-pages in /usr/share/man/ru
in KOI8-R vorliegen sollten.
Tabelle 6.1. Erwartete Zeichenkodierung für
8-Bit-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
|
Bulgarisch (bg)
|
CP1251
|
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
|
Serbisch (sr)
|
ISO-8859-5
|
Türkisch (tr)
|
ISO-8859-9
|
Chinesisch, vereinfacht (zh_CN)
|
GBK
|
Chinesisch, vereinfacht, Singapur (zh_SG)
|
GBK
|
Chinesisch, traditionell (zh_TW)
|
BIG5
|
Chinesisch, traditionell, Hong Kong (zh_HK)
|
BIG5HKSCS
|
Anmerkung
Hilfeseiten in Sprachen, die sich nicht in der Tabelle befinden,
werden nicht unterstützt. Norwegisch funktioniert aufgrund der
Umwandlung von no_NO zu nb_NO nicht, wird aber in der nächsten
Version von Man-DB
funktionieren. Koreanisch funktioniert aufgrund des
unvollständigen Groff-Patches
von Debian nicht, der in LFS verwendet wird.
Abhängig von der Linux-Distribution, für die ein Paket-Betreuer
seine Pakete entwickelt, könnten Man-pages in falsche Ordner
installiert werden. Es wurde ein Skript namens convert-mans entwickelt, das bei
der Umwandlung von Man-pages in die für einen Ordner korrekte
Kodierung behilflich sein kann. Dieses Skript wandelt Man-pages vor
oder nach der Installation in einen Ordner um. Installieren Sie
convert-mans mit den
folgenden Befehlen:
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
Wenn ein Quellpaket die Hilfeseiten in einer länderbezogenen
Kodierung mitliefert, so können diese einfach nach /usr/share/man/<Sprachcode>
kopiert
werden. Beispielsweise können deutsche Hilfeseiten (http://www.infodrom.org/projects/manpages-de/download/manpages-de-0.5.tar.gz)
mit den folgenden Kommandos installiert werden:
mkdir -p /usr/share/man/de
cp -rv man? /usr/share/man/de
Falls die Programm-Entwickler die Hilfeseiten in UTF-8 ausliefern
(z. B. „RedHat“)
anstatt der oben aufgelisteten Kodierung, dann können sie entweder
vor der Installation von UTF-8 in die aufgelistete Kodierung
umgewandelt werden, oder sie können direkt in den Ordner
/usr/share/man<Sprachcode>
.UTF-8
installiert werden.
Die Französischen
Man-pages in länderbezogener Kodierung können Sie z. B.
mit den folgenden Kommandos installieren:
convert-mans UTF-8 ISO-8859-1 man?/*.?
mkdir -p /usr/share/man/fr
cp -rv man? /usr/share/man/fr
Anmerkung
Die französischen Man-pages werden allerdings in Wirklichkeit
schon mit fertigen Skripten ausgeliefert, die die Umwandlung bei
Bedarf übernehmen. Die vorigen Kommandos sollen nur als Beispiel
für die Verwendung des Skripts convert-mans dienen.
Mit den folgenden Kommandos soll nun noch gezeigt werden, wie
beispielsweise die französischen Man-pages installiert werden
könnten:
mkdir -p /usr/share/man/fr.UTF-8
cp -rv man? /usr/share/man/fr.UTF-8