Cette section parcourt en détails l'organisation des pages de manuel pour le système entier, en incluant /usr/share/man. Reportez-vous aussi à la section sur /var/cache/man.
Les pages de manuel sont stockées dans <manrep>/<locale>/man<section>/<arch>. <manrep>, <locale>, <section> et <arch> sont expliqués ci-dessous.
Figure 4.8.2.1
Le <manrep> principal du système est /usr/share/man. /usr/share/man contient des informations du manuel pour les commandes et les données des systèmes de fichiers / et /usr. Évidemment, il n'y a pas de pages de manuel dans / parce qu'elles ne sont pas utiles au démarrage ni dans les situations d'urgence.
La <section> décrit la section du manuel.
Il faut s'assurer de faire de la place dans la structure de /usr/share/man pour supporter les pages de manuel écrites en des langues différentes (ou multiples). Cette place doit prendre en compte le stockage et la référence à ces pages de manuel. Les facteurs pertinents comprennent la langue (avec les différences géographiques), et le codage des caractères.
Le nommage des sous-répertoires spécifiques à la langue dans /usr/share/man est basé sur l'annexe E de la norme POSIX 1003.1 qui décrit la chaîne d'identification locale -- la méthode la mieux acceptée pour décrire un environnement culturel. La chaîne <locale> est :
<langue>[_<territoire>][.<code_caractère>][,<version>]
Le champ <langue> sera tiré d'ISO 639 (un code de représentation des noms de langues). Il sera constitué de deux caractères et spécifié en lettres minuscules uniquement.
Le champ <territoire> sera le code à deux lettres d'ISO 3166 (spécification des représentations de pays) si possible. (La plupart des personnes sont familières avec les codes à deux lettres utilisées pour les codes de pays des adresses électroniques.) Il sera constitué de deux caractères spécifiés en lettres majuscules uniquement. (Une exception majeure à cette règle est le Royaume Uni, qui est `GB' dans ISO 3166, mais `UK' pour la plupart des adresses électroniques.) Le champ <code_caractère> devrait représenter la norme décrivant le code de caractères. Si le champ <code_caractère> est une simple indication numérique, le nombre représente le numéro de la norme internationale décrivant le code de caractères. Il est recommandé que ce soit une représentation numérique si possible (surtout pour les normes ISO), qu'il n'inclue pas de symboles de ponctuation supplémentaires et que toute lettre soit en minuscule.
Un paramètre spécifiant la <version> du profil peut être placé après le champ <code_caractère>, séparé par une virgule. Ceci peut servir à différencier plusieurs besoins culturels ; par exemple, l'ordre du dictionnaire comparé à un ordre d'assemblage plus orienté systèmes. Cette norme recommande de ne pas utiliser le champ <version>, sauf si c'est nécessaire.
Les systèmes utilisant une langue et un code de caractères uniques pour toutes les pages de manuel peuvent omettre la sous-chaîne <locale> et stocker toutes les pages de manuel dans <manrep>. Par exemple, les systèmes qui n'ont que les pages de manuel en anglais codées en ASCII peuvent stocker ces pages (les répertoires man<section>) directement dans /usr/share/man. (Ce qui représente, en fait, la disposition et les circonstances habituelles.)
Les pays pour lesquels un ensemble de codes de caractères standard bien accepté existe peuvent omettre le champ <code_caractère>, mais il est fortement recommandé de l'inclure, surtout pour les pays ayant plusieurs normes en compétition.
Quelques exemples :
Table 4.8.2.1
De même, il faut faire de la place pour les pages de manuel dépendant de l'architecture, comme la documentation sur les pilotes de périphériques ou les commandes d'administration système de bas niveau. Elles devraient être placées dans un répertoire <arch> dans le répertoire man<section> approprié ; par exemple, une page de manuel pour la commande i386 ctrlaltdel(8) peut être placée dans /usr/share/man/<locale>/man8/i386/ctrlaltdel.8.
Les pages de manuel pour les commandes et les données de /usr/local sont stockées dans /usr/local/man. Les pages de manuel pour X11R6 sont stockées dans /usr/X11R6/man. Il s'ensuit que toutes les hiérarchies de pages de manuel du système devraient avoir la même structure que /usr/share/man. Les répertoires vides peuvent être oubliés d'une hiérarchie de pages de manuel. Par exemple, si /usr/local/man n'a pas de pages de manuel pour la section 4 (périphériques), alors /usr/local/man/man4 peut être omis.
Les sections de pages cat (cat<section>) contenant des entrées de pages de manuel formatées se trouvent aussi dans les sous-répertoires de <manrep>/<locale>, mais ne sont pas obligatoires ni ne devraient être distribuées à la place des pages de manuel en source nroff.
Les sections numérotées "1" à "8" sont définies de manière traditionnelle. En général, le nom de fichier des pages de manuel situées dans une section particulière se termine par .<section>.
De plus, certains grands ensembles de pages de manuel spécifiques à une application possèdent un suffixe supplémentaire accolé au nom de fichier de la page de manuel. Par exemple, les pages de manuel du système de gestion de courrier MH devraient avoir mh accolé à toutes les pages de manuel de MH. Toutes les pages de manuel du système X Window devraient avoir un x accolé au nom de fichier.
La pratique de placer les pages de manuel de diverses langues dans les sous-répertoires appropriés de /usr/share/man s'applique aussi aux autres hiérarchies de pages de manuel, comme /usr/local/man et /usr/X11R6/man. (Cette partie de la norme s'appliquera aussi plus loin dans la section sur la structure optionnelle /var/cache/man.)
Voici une description de chaque section :