J'ai une image Docker Centos 7 minimale et j'essaie d'obtenir des pages de manuel dessus pour aider au débogage de mon Dockerfile. Hors de la boîte, il n'a pas grand-chose:
# man ls
No manual entry for ls
Par cette réponse Serverfault , j'ai installé le man-pages
RPM, et cela a semblé aller bien:
# yum install -y man-pages
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.vtti.vt.edu
* extras: centos.mbni.med.umich.edu
* updates: centos.netnitco.net
Resolving Dependencies
--> Running transaction check
---> Package man-pages.noarch 0:3.53-5.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================
Package Arch Version Repository Size
======================================================================================================
Installing:
man-pages noarch 3.53-5.el7 base 5.0 M
Transaction Summary
======================================================================================================
Install 1 Package
Total download size: 5.0 M
Installed size: 4.6 M
Downloading packages:
man-pages-3.53-5.el7.noarch.rpm | 5.0 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : man-pages-3.53-5.el7.noarch 1/1
Verifying : man-pages-3.53-5.el7.noarch 1/1
Installed:
man-pages.noarch 0:3.53-5.el7
Complete!
Pourtant:
# man ls
No manual entry for ls
J'avais l'habitude rpm
de vérifier que man-pages
c'était censé inclure la ls
page de manuel, et il semble que ce soit le cas:
# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz
Mais il ne semble pas avoir été installé:
# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0
Et il ne semble pas non plus se trouver ailleurs sur le système de fichiers.
# find / -name ls.1\*
#
Je peux créer des fichiers dans /usr/share/man/man1p/
, donc ce n'est probablement pas une bizarrerie du système de fichiers virtuel Docker.
La meilleure partie de cela est que ce que je voulais vraiment cette minute était la page de manuel de la useradd
commande, qui n'est même pas dans ce RPM. C'est dedans shadow-utils
.
# yum whatprovides /usr/share/man/man8/useradd.8.gz
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.vtti.vt.edu
* extras: mirror.tzulo.com
* updates: centos.netnitco.net
2:shadow-utils-4.1.5.1-18.el7.x86_64 : Utilities for managing accounts and shadow password files
Repo : base
Matched from:
Filename : /usr/share/man/man8/useradd.8.gz
Qui est déjà installé.
# yum install shadow-utils
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.vtti.vt.edu
* extras: centos.mbni.med.umich.edu
* updates: centos.netnitco.net
Package 2:shadow-utils-4.1.5.1-18.el7.x86_64 already installed and latest version
Nothing to do
Et, en fait, les binaires (par exemple /usr/sbin/useradd
) sont là. Mais pas les pages de manuel.
# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory
Mes questions sont donc:
- Pourquoi ne puis-je trouver aucune des pages de manuel censées se trouver dans le
shadow-utils
RPM, lorsque je peux trouver les fichiers binaires? - Pourquoi l'installation (réussie) du
man-pages
RPM n'installe- t-elle pas les fichiers censés se trouver dans ce RPM?
Mise à jour: Selon la réponse d'Aaron Marasco et le commentaire de msuchy , j'ai essayé yum reinstall shadow-utils
. Comme avec yum install man-pages
, cela semble se terminer avec succès, mais ne place aucun fichier /usr/share/man/
.
man-pages
package n'avaient pas de pages de manuel. La solution consistait à réinstaller de tels packages, par exemple yum reinstall yum rpm
pour couvrir ces deux.