6.47.1. Installation de Man-DB
LFS crée /usr/man
et /usr/local/man
en tant que liens symboliques.
Supprimez-les du fichier man_db.conf
pour empêcher les résultats redondants lors de l'utilisation de
programmes tels whatis :
sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.in
Préparez la compilation de man-DB :
./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
Voici la signification des options de configuration :
-
--disable-setuid
-
Ceci empêche que le programme man se voit attribué l'ID
de l'utilisateur man
.
-
--enable-mb-groff
-
Ce paramètre dit à man-db de
s'attendre à la version corrigée de Debian multibits de
groff.
-
--with-...
-
Ces quatre paramètres sont utilises pour initialiser quelques
programmes par défaut. Le programme col fait partie du paquet
Util-linux-ng, lynx est un navigateur Web
en console (voir BLFS pour les instructions d'installation),
vgrind
convertit du code source de programme en entrée Groff et
grap est utile
pour la composition de texte de graphes dans les documents
Groff. Les programmes vgrind et grap ne sont normalement
pas nécessaires pour la visualisation des pages de manuel.
Ils ne font pas partie de LFS ou de BLFS mais vous devriez
être capable de les installer vous-même après avoir fini LFS
si vous souhaitez faire cela.
Compilez le paquet :
make
Ce paquet n'est pas fourni avec une suite de tests.
Installez le paquet :
make install
6.47.2. Pages de manuel non anglaises dans LFS
Certains paquets fournissent des pages de man UTF-8. Elles ne sont
affichées correctement que si leur emplacement et leur encodage
correspond à ce qu'attend le programme "man". Cependant, diverses
distributions Linux ont des politiques différentes (exprimées dans
le choix du programme man, sa configuration et les
correctifs qui lui sont appliqués) concernant l'encodage de
caractères dans lequel les pages de manuel sont conservées sur le
système de fichiers.
Par exemple, Debian exigeait auparavant que les pages de man russes
soient encodées en KOI8-R et situées dans /usr/share/man/ru
. Maintenant, en plus, leur
programme man
(Man-DB) cherche les pages de
manuel en russe encodées en UTF-8 dans /usr/share/man/ru.UTF-8
. Au contraire, Fedora
utilise exclusivement celles encodées en UTF-8. On trouve les pages
de man en russe dans /usr/share/man/ru
et leur programme man n'admet que /usr/share/man/ru.UTF-8
. Beaucoup d'autres
distributions ignorent totalement les encodages présents sur le
disque, laissant l'utilisajeur final face à un mélange de pages de
manuel mal encodées pour leur configuration. Lorsque man traite la page demandée, il
affichera le contenu tel que configuré, donnant un résultat
complètement illisible si l'encodage sur le disque n'est pas celui
attendu pour cette configuration.
Le désaccord entre les fabricants de distribution sur l'encodage
attendu des pages de manuel a conduit a une confusion pour les
mainteneurs originels des paquets. Il se peut qu'un paquet
contienne des pages de manuel en UTF-8 tandis qu'un autre est livré
avec des pages de manuel en encodages finaux. man cherche les pages de manuel
basées sur les paramètres de la locale de l'utilisateur.
Man-DB utilise une table intégrée
(voir ci-dessous) pour déterminer l'encodage sur le disque des
pages de manuel trouvées pour la locale d'un utilisateur, du moins
si les répertoires n'ont pas d'extension qui décrit l'encodage. Par
exemple, avec un ".UTF-8" dans le nom d'un répertoire, Man-DB sait que toutes les pages de manuel se
trouvant dans /usr/share/man/fr.UTF-8
sont encodées en UTF-8 et, selon la table intégrée, s'attend à ce
que toutes les pages de manuel se trouvant dans /usr/share/man/ru
soient encodées en utilisant
KOI8-R.
Tableau 6.1. Encodage de caractère attendu des pages
de manuel
Langue (code)
|
Encodage
|
Danois (da)
|
ISO-8859-1
|
Allemand (de)
|
ISO-8859-1
|
Anglais (en)
|
ISO-8859-1
|
Espagnol (es)
|
ISO-8859-1
|
Finnois (fi)
|
ISO-8859-1
|
Français (fr)
|
ISO-8859-1
|
Irlandais (ga)
|
ISO-8859-1
|
Galicien (gl)
|
ISO-8859-1
|
Indonésien (id)
|
ISO-8859-1
|
Islandais (is)
|
ISO-8859-1
|
Italien (it)
|
ISO-8859-1
|
Néerlandais (nl)
|
ISO-8859-1
|
Norvégien (no)
|
ISO-8859-1
|
Portugais (pt)
|
ISO-8859-1
|
Suédois (sv)
|
ISO-8859-1
|
Bulgare (bg)
|
CP1251
|
Tchèque (cs)
|
ISO-8859-2
|
Croate (hr)
|
ISO-8859-2
|
Hongrois (hu)
|
ISO-8859-2
|
Japonais (ja)
|
EUC-JP
|
Coréen (ko)
|
EUC-KR
|
Polonais (pl)
|
ISO-8859-2
|
Russe (ru)
|
KOI8-R
|
Slovaque (sk)
|
ISO-8859-2
|
Serbe (sr)
|
ISO-8859-5
|
Turc (tr)
|
ISO-8859-9
|
Chinese simplifié (zh_CN)
|
GBK
|
Chinese simplifié, Singapour (zh_SG)
|
GBK
|
Chinois traditionnel (zh_TW)
|
BIG5
|
Chinois traditionnel, Hong Kong (zh_HK)
|
BIG5HKSCS
|
Note
Les pages de manuel dont la langue ne figure pas dans la liste ne
sont pas supportées. Le norvégien ne fonctionne pas maintenant à
cause du passage de la locale no_NO à nb_NO, et sera corrigé dans
la prochaine version de Man-DB.
Le Coréen n'est pas actuellement fonctionnel à cause d'un
correctif de Groff incomplet.
Il se peut que des paquets installent des pages de manuel dans un
répertoire mal nommé, selon les distributions pour laquelle
l'auteur développe le paquet. Pour aider la conversion des pages de
manuel dans le bon encodage dans le répertoire o elles sont
installées, on a écrit le script convert-mans. Il va convertir les
pages de manuel dans un autre encodage avant (ou après)
l'installation. Installez le script convert-mans avec les
instructions suivantes :
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
Si dès l'origine les pages de manuel sont distribuées dans
l'encodage final, les pages de manuel peuvent simplement être
copiées vers /usr/share/man/<code de langue>
. Par
exemple,
les pages de manuel en allemand peuvent être installées avec
les commandes suivantes :
mkdir -p /usr/share/man/de
cp -rv man? /usr/share/man/de
Si à l'origine les pages de manuel sont distribuées en UTF-8 (par
exemple, « pour RedHat ») au
lieu du codage indiqué dans la table ci-dessus, soit elles peuvent
être converties de l'UTF-8 vers le codage listé dans la table
ci-dessus avant d'être installées, soit elles peuvent être
installées directement dans /usr/share/man/<code
langue>
.UTF-8
.
Par exemple, pour installer les
pages de manuel en français dans l'encodage final, utilisez les
commandes suivantes :
convert-mans UTF-8 ISO-8859-1 man?/*.?
mkdir -p /usr/share/man/fr
cp -rv man? /usr/share/man/fr
Note
Bes pages de manuel en français sont livrées avec des scripts
tout prêts pour faire la même conversion. Les idstructions
ci-dessus sont utilisées seulement pour exemple d'utilisation du
script convert-mans
script.
Finalement, pour un exemple d'installation de pages de manuel en
UTF-8, de nouveau vous pourriez installer les pages de manuel en
français avec les commandes suivantes :
mkdir -p /usr/share/man/fr.UTF-8
cp -rv man? /usr/share/man/fr.UTF-8