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 exempleyum reinstall yum rpm
pour couvrir ces deux.Réponses:
Votre image a probablement l'
nodocs
indicateur de transaction défini dans la configuration yum (cf./etc/yum.conf
).Vous pouvez le supprimer globalement (ou sur la ligne de commande yum) avant de (ré) installer les packages pour lesquels vous voulez les pages de manuel.
Par exemple:
la source
--setopt=tsflags=''
comme suggéré dans la réponse du sommet sud ? (=
pour-
)useradd
(qui a été référencé dans la question).Rien n'a fonctionné ici et en plus de cela, la réponse acceptée contient une faute de frappe. Je n'ai pas assez de représentant pour commenter là-bas, donc je l'ajoute ici comme réponse au cas où cela aiderait quelqu'un.
Pour installer un package avec des pages de manuel, utilisez:
yum --setopt=tsflags='' install man-db
Alors:
yum --setopt=tsflags='' install {your-package-name}
Ou, vous pouvez supprimer définitivement la ligne de yum.conf, ce qui empêche l'installation des pages de manuel. Pour ce faire, utilisez:
sed -i '/tsflags=nodocs/d' /etc/yum.conf
Ensuite, vous pouvez utiliser
yum install
ouyum reinstall
normalement.La source
la source
sed -i 's/tsflags=nodocs/# &/' /etc/yum.conf
Je sais que c'est une vieille question, mais étant donné le temps que j'ai passé à suivre cela, cela finira par être utile à quelqu'un d'autre.
Le problème est lié à la façon dont RPM est configuré dans l'image de docker, vérifiez d'abord si la
excludedocs
directive est répertoriée dans la configuration de RPM comme suit:S'il est là, vous devez trouver le fichier qui le spécifie dans mon cas, il était sous
/etc/rpm/macros.imgcreate
et le supprimerYum devrait ensuite effectuer toute l'installation de la page de manuel comme prévu (étant donné que vous n'avez pas non plus les éléments
nodocs
tsflag
mentionnés ci-dessus.la source
L'image Docker est extrêmement dépouillée. Je pense qu'ils suppriment les pages de manuel après l'installation des RPM. Vous pouvez le vérifier avec
rpm -V shadow-utils
. Je sais que j'ai eu des problèmes à essayer d'utiliser les RPM delta pour mettre à niveau les packages car les pages de manuel sont manquantes.Malheureusement, je pense que la seule façon d'obtenir une page de manuel pour quelque chose serait de forcer la réinstallation du RPM ou de les extraire manuellement du RPM et de les déposer en place.
Voir aussi ce site je suppose.
la source
yum reinstall shadow-utils
va le réparer.man-pages
installation correctement?man-pages
.la source