Mengapa perintah “manusia” hilang?

9

Saya menemukan manperintah menghilang pada saya 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)

Tapi mandan man-pagessemuanya ada di kotak saya:

# 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

Kemana perginya man?

Pembaruan 1 :

Coba instal ulang man, tetapi muncul kesalahan berikut:

......
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

Perbarui 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
sumber
Bisakah Anda menambahkan output dari ls -l /usr/bin/manke pertanyaan Anda di atas (sebenarnya, termasuk stat /usr/bin/manjuga).
EightBitTony
uninstall man, hapus /usr/bin/mandan instal man-pageskemudian instalman
GAD3R
@EightBitTony: Tambahkan output ls -l /usr/bin/mandan stat /usr/bin/man, terima kasih!
Nan Xiao
RPM menggunakan cpioformat arsipnya, itulah sebabnya kami melihat kesalahan cpio ketika mencoba mengganti file/usr/bin/man
GAD3R
3
Yah, saya tidak tahu mengapa - tetapi /usr/bin/mantampaknya Anda adalah direktori, bukan satu executable. Hampir seolah-olah seseorang telah menyalin direktori halaman manual ke / usr / bin / man.
EightBitTony

Jawaban:

13

Saya ragu kami akan dapat memberi tahu Anda ke mana ia pergi, tetapi Anda seharusnya hanya dapat menginstalnya kembali menggunakan yum.

yum reinstall man

yumtidak memeriksa untuk melihat apakah file ada saat Anda menjalankan yum install, itu hanya memeriksa database paket mana yang telah diinstal. Jika seseorang menghapus semua file di luar manajer paket, itu tidak akan tahu (Anda bisa memeriksanya, tetapi tidak secara default). Menggunakan yum reinstallmemberitahu itu untuk melakukan instalasi meskipun paket itu dianggap sudah ada.

Tergantung pada apa yang telah dihapus atau dihapus, Anda mungkin perlu yum reinstall ...hal-hal lain seperti man-pages.

Diperbarui berdasarkan informasi baru:

Untuk beberapa alasan, Anda /usr/bin/manadalah direktori, bukan satu file, dan dilihat dari kontennya, sepertinya seseorang telah melakukan sesuatu yang aneh mv /usr/share/man /usr/binatau sesuatu yang aneh.

Anda tidak akan dapat dengan mudah membatalkan ini - Anda perlu menyelidiki, melihat apa yang rusak atau dipindahkan, dan memperbaikinya.

Anda mungkin hanya bisa menghapus /usr/bin/mandan isinya lalu menginstal ulang mandan man-pagesmenggunakan yumtetapi tanpa investigasi lebih lanjut itu tidak akan jelas.

EightBitTony
sumber
Saya mencoba menginstal ulang man, tetapi " unpacking of archive failed on file /usr/bin/man: cpio: rename" itu memicu kesalahan. Bisakah Anda membantu memeriksa? Terima kasih banyak sebelumnya!
Nan Xiao
@ Hapus /usr/bin/mandan instal ulang manperbaiki, terima kasih banyak!
Nan Xiao
2
@NanXiao: Jika /usr/bin/mandirektori, siapa yang tahu apa lagi yang kacau? Pada titik ini, saya akan merekomendasikan mencadangkan file Anda dan menginstal ulang OS dari awal. Dan jangan biarkan anak Anda yang berusia tiga tahun bermain dengan shell root di waktu berikutnya. ;)
Ilmari Karonen
0

RPM digunakan cpiosebagai format arsipnya. Itu sebabnya kami melihat cpiokesalahan saat mencoba mengganti file /usr/bin/man.

Anda perlu removedan purge mankemudian Anda perlu menginstal man-pages.

Buka Terminal dan ketik perintah berikut:

yum check-update
yum update
yum install man-pages
yum install man
GAD3R
sumber
Pertanyaan awal menunjukkan itu yum install mandan yum install man-pagestidak membuat perbedaan karena yummenganggap mereka sudah diinstal.
EightBitTony