Mam minimalny obraz Docker Centos 7 i próbuję znaleźć na nim kilka stron podręcznika użytkownika, które pomogą w debugowaniu mojego pliku Docker. Po wyjęciu z pudełka nie ma wiele:
# man ls
No manual entry for ls
Zgodnie z odpowiedzią na błąd serwera zainstalowałem man-pages
RPM i wszystko poszło dobrze:
# 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!
Jednak:
# man ls
No manual entry for ls
Kiedyś rpm
sprawdzałem, czy man-pages
powinna zawierać ls
stronę podręcznika , i wygląda na to, że:
# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz
Ale nie wygląda na to, że został faktycznie zainstalowany:
# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0
I wydaje się, że nie ma go nigdzie indziej w systemie plików.
# find / -name ls.1\*
#
Mogę tworzyć pliki /usr/share/man/man1p/
, więc prawdopodobnie nie jest to dziwny wirtualny system plików Dockera.
Najlepsze jest to, że w tej chwili tak naprawdę chciałem strony man dla useradd
polecenia, której nawet nie ma w RPM. Jest w środku 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
Który jest już zainstalowany.
# 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
I w rzeczywistości istnieją pliki binarne (np. /usr/sbin/useradd
). Ale nie strony podręcznika.
# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory
Więc moje pytania to:
- Dlaczego nie mogę znaleźć żadnej strony podręcznika, która powinna znajdować się w
shadow-utils
RPM, skoro mogę znaleźć pliki binarne? - Dlaczego (z powodzeniem) instalacja
man-pages
RPM nie instaluje plików, które powinny znajdować się w tym RPM?
Aktualizacja: Per odpowiedź Aaron Marasco za i komentarz msuchy za starałem yum reinstall shadow-utils
. Podobnie jak w przypadku yum install man-pages
, wydaje się, że zakończyło się to pomyślnie, ale tak naprawdę nie wkłada żadnych plików /usr/share/man/
.
man-pages
pakietu nie miały stron podręcznika . Rozwiązaniem było ponowne zainstalowanie takich pakietów, np. yum reinstall yum rpm
Aby pokryć te dwa.