Dlaczego polecenie „człowiek” znika?

9

Uważam, że manpolecenie znika na moim RHEL7:

# man ls
bash: man: command not found...
# which man
/usr/bin/which: no man in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/root/gocode/bin:/root/bin:/opt/linuxki)

Ale mani man-pageswszystkie są na moim pudełku:

# yum install man
Loaded plugins: auto-update-debuginfo, langpacks, product-id, search-disabled-repos, subscription-manager
Package man-db-2.6.3-9.el7.x86_64 already installed and latest version
Nothing to do
# yum install man-pages
Loaded plugins: auto-update-debuginfo, langpacks, product-id, search-disabled-repos, subscription-manager
Package man-pages-3.53-5.el7.noarch already installed and latest version
Nothing to do

Gdzie manposzedł?

Aktualizacja 1 :

Spróbuj zainstalować ponownie man, ale powoduje to następujące błędy:

......
Running transaction
  Installing : man-db-2.6.3-9.el7.x86_64                                                                                                 1/1
Error unpacking rpm package man-db-2.6.3-9.el7.x86_64
error: unpacking of archive failed on file /usr/bin/man: cpio: rename
  Verifying  : man-db-2.6.3-9.el7.x86_64                                                                                               1/1

Failed:
  man-db.x86_64 0:2.6.3-9.el7

Aktualizacja 2

# ls -lt /usr/bin/man
total 4
drwxr-xr-x. 2 nan nan   81 Mar 24 22:30 man1
drwxr-xr-x. 2 nan nan 4096 Mar 24 22:30 man7
# stat /usr/bin/man
  File: ‘/usr/bin/man’
  Size: 28              Blocks: 0          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 67811254    Links: 4
Access: (0755/drwxr-xr-x)  Uid: ( 1000/     nan)   Gid: ( 1000/     nan)
Context: unconfined_u:object_r:bin_t:s0
Access: 2016-04-15 17:47:56.613595324 +0800
Modify: 2016-03-24 22:30:30.000000000 +0800
Change: 2016-04-08 11:08:45.605815500 +0800
 Birth: -
Nan Xiao
źródło
Czy możesz dodać wynik ls -l /usr/bin/mando swojego pytania powyżej (w rzeczywistości, również dołączyć stat /usr/bin/man).
EightBitTony
odinstalować man, usunąć /usr/bin/mani zainstalować man-pages, a następnie zainstalowaćman
GAD3R
@EightBitTony: Dodaj dane wyjściowe ls -l /usr/bin/mani stat /usr/bin/mandzięki!
Nan Xiao
RPM używa cpioformatu archiwum, dlatego podczas próby zastąpienia pliku /usr/bin/man
pojawia się
3
Nie wiem dlaczego - ale /usr/bin/manwydaje się, że jest to katalog, a nie pojedynczy plik wykonywalny. To prawie tak, jakby ktoś skopiował katalog stron man przez / usr / bin / man.
EightBitTony 15.04.16

Odpowiedzi:

13

Wątpię, czy kiedykolwiek będziemy w stanie powiedzieć ci, gdzie poszło, ale powinieneś być w stanie ponownie zainstalować go za pomocą yum.

yum reinstall man

yumnie sprawdza, czy pliki istnieją podczas uruchamiania yum install, po prostu sprawdza bazę danych, które pakiety zostały zainstalowane. Jeśli ktoś usunie wszystkie pliki poza menedżerem pakietów, nie będzie wiedział (możesz to zrobić, aby to sprawdzić, ale domyślnie tak nie jest). Użycie yum reinstallpowoduje, że wykonuje instalację, nawet jeśli uważa, że ​​pakiet już tam jest.

W zależności od tego, co zostało usunięte lub usunięte, może być konieczne wykonanie yum reinstall ...innych czynności man-pages.

Zaktualizowany w świetle nowych informacji:

Z jakiegoś powodu twój /usr/bin/manjest katalogiem, a nie pojedynczym plikiem, i sądząc po treści wygląda na to, że ktoś zrobił coś dziwnego mv /usr/share/man /usr/binlub dziwnego.

Nie będziesz w stanie tego po prostu cofnąć - musisz zbadać, zobaczyć, co zostało zepsute lub przeniesione, i to naprawić.

Być może będziesz w stanie usunąć /usr/bin/mani jego zawartość, a następnie ponownie zainstalować mani man-pagesużywać, yumale bez dalszych badań nie będzie to jasne.

EightBitTony
źródło
Próbuję ponownie zainstalować man, ale pojawia się unpacking of archive failed on file /usr/bin/man: cpio: renamebłąd „ ”. Czy możesz pomóc w sprawdzeniu? Z góry dziękuję!
Nan Xiao
@ Usuń /usr/bin/mani zainstaluj ponownie, mannapraw, dziękuję bardzo!
Nan Xiao
2
@NanXiao: Jeśli /usr/bin/manistnieje katalog, kto wie, co jeszcze jest zepsute? W tym momencie zalecam utworzenie kopii zapasowej plików i ponowną instalację systemu operacyjnego. I nie pozwól, aby twój trzylatek grał z rootem następnym razem. ;)
Ilmari Karonen
0

RPM używa cpiojako formatu archiwum. Dlatego widzimy cpiobłąd podczas próby zastąpienia pliku /usr/bin/man.

Musisz, removea purge mannastępnie musisz zainstalować man-pages.

Otwórz terminal i wpisz następujące polecenia:

yum check-update
yum update
yum install man-pages
yum install man
GAD3R
źródło
Oryginalne pytanie to pokazuje yum install mani yum install man-pagesnie zrobiło żadnej różnicy, ponieważ yumwydaje się, że są już zainstalowane.
EightBitTony 15.04.16