Jak zainstalować strony podręcznika man na centos?

18

Uwaga: Dotyczy to Centos 7. Jeśli szukasz odpowiedzi na Debian, zobacz to pytanie . Te odpowiedzi nie zostaną tutaj skopiowane.

Po instalacji centos 7 nie mogę uzyskać dostępu do stron podręcznika:

# man ls
-bash: man: command not found

Próbowałem zainstalować go przez yum

# yum install man-pages
... ok

Ale znowu:

# man ls
-bash: man: command not found

Dlaczego?

Rémi B.
źródło
1
To bardzo dziwne, ponieważ man(1)jest to bardzo podstawowy element systemu. Możesz spróbować zainstalować ponownie, to znaczy iść yum reinstall /usr/bin/man.
vonbrand,

Odpowiedzi:

17

W celu korzystania z polecenia man, należy także zainstalować manpakiet przed lub po man-pagesjednej

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

Teraz manjest zainstalowany

# 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.
źródło
2
Najwyraźniej nie działa to na centOS w kontenerze dokera. Wiem, że dostałem to do pracy na maszynie wirtualnej centOS, ale nie jestem pewien, dlaczego nie działa w kontenerze.
jersey bean
9
Ok, właśnie znalazłem swoją odpowiedź. Obrazy Centos Dockera są wstępnie budowane z tsflags = nodocs ustawionymi w /etc/yum.conf. Zobacz hub.docker.com/_/centos
jersey bean
Tak, masz rację! +1 za uzupełnienie. Dzięki!
Rémi B.
6

Miałem ten sam problem w kontenerze dokera i rozwiązałem go, komentując tsflags=nodocsw /etc/yum.confpliku, a następnie usunąłem strony man i man-db i ponownie je zainstalowałem. W ten sposób działa dobrze.

$ vi /etc/yum.conf

Wyszukaj tsflagsw pliku i dodaj komentarz (#) przed nim:

#tsflags=nodocs

Teraz usuń man-db i strony man, jeśli są już zainstalowane w systemie:

$ yum remove man-pages man-db

Następnie zainstaluj je ponownie:

$ yum install man-pages man-db

Posortowane!

R. S
źródło
To był sekretny sos dla mojej instalacji WSL centos75 w systemie Windows.
Choy,
4

Składnia w CentOS 7:

# yum install man-pages man-db man

Składnia w CentOS 6:

$ sudo yum install man man-pages

Źródło

simhumileco
źródło
0

Jak zauważył R. S , oficjalne obrazy Dockera CentOS mają wyłączoną ręczną instalację strony. Dotyczy to również oficjalnych obrazów Dockera Fedory.

Najłatwiejszym sposobem na poradzenie sobie z tym jest użycie następującego sedpolecenia, które będzie działać w każdym systemie:

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

Spowoduje to wyświetlenie komunikatu o błędzie informującego, że nie można odczytać jednego z dwóch plików, ale cokolwiek istnieje, zostanie zaktualizowane w celu skomentowania tsflags=nodocslinii. Na || truekońcu zapewnia, że ​​polecenie zwraca sukces niezależnie od błędów, aby uniknąć zatrzymywania się w skryptach.

Można tego użyć w RUNpoleceniu w Dockerfile, w którym to przypadku należy go użyć przed zainstalowaniem jakichkolwiek dalszych pakietów. W przypadku pakietów, które zostały już zainstalowane, wszelkie strony podręcznika, które normalnie z nimi pochodzą, pozostaną odinstalowane, a pakiet będzie musiał zostać ponownie zainstalowany, aby wprowadzić strony podręcznika. Wiele stron podręcznika systemowego (np. ls) Znajduje się w man-pagespakiecie, ale inne pakiety, takie jak gitwłasne strony podręcznika, również wymagają ponownej instalacji.

Usunięcie, a następnie ponowna instalacja pakietów może powodować problemy z zależnościami. Aby tego uniknąć, użyj:

yum -y reinstall man-pages git
Curt J. Sampson
źródło