Wie installiere ich Manpages auf Centos?

18

Hinweis: Dies gilt für Centos 7. Wenn Sie nach einer Debian-Antwort suchen, lesen Sie diese Frage . Diese Antworten werden hier nicht dupliziert.

Nach einer Installation von Centos 7 kann ich nicht auf Manpages zugreifen:

# man ls
-bash: man: command not found

Ich habe versucht, es über yum zu installieren

# yum install man-pages
... ok

Aber wieder:

# man ls
-bash: man: command not found

Warum?

Rémi B.
quelle
1
Dies ist äußerst seltsam, ebenso man(1)wie ein sehr grundlegender Teil des Systems. Sie könnten versuchen, neu zu installieren, dh zu gehen yum reinstall /usr/bin/man.
vonbrand

Antworten:

17

Um den Befehl man verwenden zu können, müssen Sie das manPaket auch vor oder nach dem man-pageseinen installieren

# yum install man-pages
... ok
# yum install man
... ok

Jetzt manist installiert

# man ls


NAME
      ls - list directory contents

SYNOPSIS
      ls [OPTION]... [FILE]...

DESCRIPTION
      List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort.

      Mandatory arguments to long options are mandatory for short options too. ...
Rémi B.
quelle
2
Anscheinend funktioniert dies nicht mit centOS in einem Docker-Container. Ich weiß, dass dies in einer CentOS-VM funktioniert, bin mir aber nicht sicher, warum es im Container nicht funktioniert.
Jersey Bean
9
Ok, ich habe gerade meine Antwort gefunden. Docker-Centos-Bilder werden mit tsflags = nodocs erstellt, die in /etc/yum.conf festgelegt sind. Siehe hub.docker.com/_/centos
jersey bean
Ja, du hast Recht! +1 für die Ergänzung. Vielen Dank!
Rémi B.
6

Ich hatte das gleiche Problem in meinem Docker-Container und löste es durch Auskommentieren tsflags=nodocsin der /etc/yum.confDatei. Dann entfernte ich die man-pages und man-db und installierte sie erneut. Es funktioniert gut auf diese Weise.

$ vi /etc/yum.conf

Suchen Sie tsflagsin der Datei nach und fügen Sie einen Kommentar (#) davor ein:

#tsflags=nodocs

Entfernen Sie nun die man-db und die man-pages, falls diese bereits auf Ihrem System installiert sind:

$ yum remove man-pages man-db

Dann installieren Sie sie erneut:

$ yum install man-pages man-db

Sortiert!

R. S
quelle
Dies war die geheime Sauce für meine WSL centos75-Installation unter Windows.
Choy
4

Die Syntax unter CentOS 7:

# yum install man-pages man-db man

Die Syntax unter CentOS 6:

$ sudo yum install man man-pages

Quelle

simhumileco
quelle
0

Wie von R. S ausgeführt , ist die manuelle Seiteninstallation in den offiziellen CentOS Docker-Images deaktiviert. Dies gilt auch für die offiziellen Fedora-Docker-Bilder.

Der einfachste Weg, dies zu tun, ist der folgende sedBefehl, der auf beiden Systemen funktioniert:

sed -i -e '/tsflags=nodocs/s/^/#/' /etc/yum.conf /etc/dnf/dnf.conf || true

Daraufhin wird eine Fehlermeldung ausgegeben, die besagt, dass eine der beiden Dateien nicht gelesen werden kann. Die vorhandene Datei wird jedoch aktualisiert, um die tsflags=nodocsZeile zu kommentieren . Am || trueEnde wird sichergestellt, dass der Befehl unabhängig von Fehlern erfolgreich ausgeführt wird, um ein Anhalten in Skripten zu vermeiden.

Dies kann in einem RUNBefehl in a verwendet Dockerfilewerden. In diesem Fall sollten Sie ihn verwenden, bevor Sie weitere Pakete installieren. Bei Paketen, die Sie bereits installiert haben, bleiben die normalerweise mitgelieferten Handbuchseiten deinstalliert, und das Paket muss erneut installiert werden, damit die Handbuchseiten angezeigt werden. Viele der Handbuchseiten des Basissystems (z. B. ls) sind im man-pagesPaket enthalten, aber andere Pakete, z. B. gitmit eigenen Handbuchseiten, müssen ebenfalls neu installiert werden.

Das Entfernen und anschließende Neuinstallieren von Paketen kann zu Abhängigkeitsproblemen führen. Um dies zu vermeiden, verwenden Sie stattdessen:

yum -y reinstall man-pages git
Curt J. Sampson
quelle