Ho un'immagine Docker di Centos 7 minimale e sto cercando di ottenere delle pagine man su di esso per aiutare il debug del mio Dockerfile. Fuori dagli schemi, non ha molto:
# man ls
No manual entry for ls
Per questa risposta Serverfault , ho installato l' man-pages
RPM e questo sembrava andare bene:
# 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!
Tuttavia:
# man ls
No manual entry for ls
Prima rpm
controllavo che man-pages
dovesse includere la ls
pagina man e sembra che lo faccia:
# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz
Ma non sembra che sia stato effettivamente installato:
# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0
E non sembra nemmeno essere altrove sul filesystem.
# find / -name ls.1\*
#
Posso creare file /usr/share/man/man1p/
, quindi probabilmente non è una stranezza del filesystem virtuale Docker.
La parte migliore di questo è che quello che volevo davvero in questo momento era la pagina man per il useradd
comando, che non è nemmeno in quel RPM. È dentro 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
Che è già installato.
# 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
E, in effetti, i binari (es. /usr/sbin/useradd
) Ci sono. Ma non le pagine man.
# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory
Quindi le mie domande sono:
- Perché non riesco a trovare nessuna delle pagine man che dovrebbero essere
shadow-utils
nell'RPM, quando posso trovare i binari? - Perché l'installazione (corretta)
man-pages
dell'RPM non installa i file che dovrebbero essere presenti in quell'RPM?
Aggiornamento: Per la risposta di Aaron Marasco e il commento di msuchy , ho provato yum reinstall shadow-utils
. Come nel caso yum install man-pages
, questo sembra completarsi correttamente, ma in realtà non inserisce alcun file /usr/share/man/
.
man-pages
pacchetto non avevano pagine man. La soluzione era reinstallare tali pacchetti, ad esempio yum reinstall yum rpm
per coprire quei due.