Tengo una imagen mínima de Docker de Centos 7, y estoy tratando de obtener algunas páginas de manual para ayudar a depurar mi Dockerfile. Fuera de la caja, no tiene mucho:
# man ls
No manual entry for ls
Según esta respuesta de Serverfault , instalé el man-pages
RPM, y eso pareció funcionar 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!
Sin embargo:
# man ls
No manual entry for ls
Solía rpm
comprobar que man-pages
se suponía que debía incluir la ls
página de manual, y parece que sí:
# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz
Pero no parece que se haya instalado realmente:
# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0
Y tampoco parece estar en ningún otro lugar del sistema de archivos.
# find / -name ls.1\*
#
Puedo crear archivos /usr/share/man/man1p/
, por lo que probablemente no sea una rareza del sistema de archivos virtual de Docker.
La mejor parte de esto es que lo que realmente quería en este momento era la página del useradd
comando man , que ni siquiera está en ese RPM. Está en 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
Que ya está instalado.
# 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
Y, de hecho, los binarios (por ejemplo /usr/sbin/useradd
) están ahí. Pero no las páginas del manual.
# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory
Entonces mis preguntas son:
- ¿Por qué no puedo encontrar ninguna de las páginas de manual que se supone que están en el
shadow-utils
RPM, cuando puedo encontrar los binarios? - ¿Por qué la instalación (exitosa) del
man-pages
RPM no instala los archivos que se supone que están en ese RPM?
Actualización: Por la respuesta de Aaron Marasco y comentario de msuchy , he intentado yum reinstall shadow-utils
. Al igual que con yum install man-pages
, esto parece completarse con éxito, pero en realidad no coloca ningún archivo /usr/share/man/
.
man-pages
paquete no tenían páginas de manual. La solución fue reinstalar dichos paquetes, por ejemplo, yum reinstall yum rpm
para cubrir esos dos.