Ich habe ein minimales Centos 7 Docker-Image und versuche, Manpages darauf zu finden, die beim Debuggen meiner Docker-Datei helfen. Nach dem Auspacken hat es nicht viel:
# man ls
No manual entry for ls
Nach dieser Serverfault-Antwort habe ich das man-pages
RPM installiert , und das schien in Ordnung zu sein:
# 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!
Jedoch:
# man ls
No manual entry for ls
Früher habe ich rpm
überprüft, ob man-pages
die ls
Manpage enthalten sein sollte, und es sieht so aus:
# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz
Es sieht aber nicht so aus, als wäre es tatsächlich installiert:
# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0
Und es scheint auch nirgendwo anders im Dateisystem zu sein.
# find / -name ls.1\*
#
Ich kann Dateien in erstellen /usr/share/man/man1p/
, daher ist es wahrscheinlich keine Verrücktheit des virtuellen Docker-Dateisystems.
Das Beste daran ist, dass ich in dieser Minute wirklich die Manpage für den useradd
Befehl haben wollte, die nicht einmal in diesem RPM enthalten ist. Es ist in 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
Welches ist bereits installiert.
# 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
Und tatsächlich sind die Binaries (zB /usr/sbin/useradd
) da. Aber nicht die Manpages.
# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory
Meine Fragen sind also:
- Warum kann ich keine der Manpages finden, die sich im
shadow-utils
RPM befinden sollen , wenn ich die Binärdateien finde? - Warum werden
man-pages
die Dateien, die in diesem RPM enthalten sein sollen, nicht (erfolgreich) installiert ?
Update: Per Aaron Marascos Antwort und msuchys Kommentar habe ich es versucht yum reinstall shadow-utils
. Wie bei yum install man-pages
scheint dies erfolgreich abgeschlossen zu werden, es werden jedoch keine Dateien gespeichert /usr/share/man/
.
man-pages
Pakets installiert wurden, keine Manpages hatten. Die Lösung bestand darin, solche Pakete neu zu installieren, z. B. yum reinstall yum rpm
um diese beiden abzudecken.