{{tag>sysadmin docker dpkg debian man manuel documentation}}
====== Docker : Pages manuel absentes des images debian slim ======
Docker propose des images Debian taguée *-slim. Dans ces images malgré l'installation du manuel et des paquets intégrant de la documentation, l'appel du manuel ne retourne pas de résultat:
man man
No manual entry for man
See 'man 7 undocumented' for help when manual pages are not available.
La commande **apt-file** permet d'identifier le paquet contenant un fichier voulu. Ici on recherche la documentation du manuel:
apt-file search man/man1/man.1.gz
man-db: /usr/share/man/man1/man.1.gz
La commande apt-file nous indique que la documentation du manuel est fournie par le paquet **man-db**. Le paquet est cependant déjà installé comme le montre le retour de la commande **dpkg** ci-dessous:
dpkg -l | grep man-db
ii man-db 2.8.5-2 amd64 on-line manual pager
Malgré l'installation correcte du paquet **man-db** le fichier **/usr/share/man/man1/man.1.gz** est absent du système:
ls /usr/share/man/man1/man.1.gz
ls: cannot access '/usr/share/man/man1/man.1.gz': No such file or directory
Si on télécharge le paquet et qu'on le décompresse avec les commandes suivantes, les pages de documentation du manuel sont bien installées:
# Téléchargement du paquet dans le répertoire courant
apt-get download man-db
# Liste le contenu de l'archive pour vérifier la présence du fichier dans l'archive
dpkg-deb --contents man-db_2.8.5-2_amd64.deb | grep man/man1/man.1.gz
-rw-r--r-- root/root 12634 2019-02-10 12:14 ./usr/share/man/man1/man.1.gz
# Décompresse l'archive
dpkg-deb -x man-db_2.8.5-2_amd64.deb /
# Vérifie la présence du fichier sur le système
ls /usr/share/man/man1/man.1.gz
/usr/share/man/man1/man.1.gz
On peut voir que la décompression à l'aide de l'utilitaire **dpkg-deb** se comporte comme attendu et que le fichier est bien présent sur le système.
C'est donc une option de configuration du gestionnaire de paquet qui conduit à ignorer certains fichiers.
Le choix a été fait d'exclure certains fichiers (dont ceux de la documentation) afin de réduire la taille des images Debian étiquetées *-slim. Ceci peut être fait en paramétrant **dpkg** via les fichiers présents dans **/etc/dpkg/dpkg.cfg.d/** et plus particulièrement via le fichier **/etc/dpkg/dpkg.cfg.d/docker**.
Depuis la ligne de commande, lors de l'installation d'un paquet on peut exclure un ensemble de fichiers via les options **%%--path-exclude%%** et **%%--path-include%%**
# Installe le paquet man-db en excluant tous les fichiers de documentation sauf /usr/share/man/man1/man.1.gz
dpkg --path-exclude='/usr/share/man/*' --path-include='/usr/share/man/man1/man.1.gz' -i man-db_2.8.5-2_amd64.deb