Tại sao lệnh của người đàn ông có thể biến mất?


9

Tôi tìm thấy manlệnh biến mất trên 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)

Nhưng manman-pagestất cả đều nằm trong hộp của tôi:

# 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

Đã manđi đâu?

Cập nhật 1 :

Hãy thử cài đặt lại man, nhưng nó sẽ nhắc các lỗi sau:

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

Cập nhật 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: -

Bạn có thể thêm đầu ra từ ls -l /usr/bin/mancâu hỏi của bạn ở trên không (thực tế, bao gồm stat /usr/bin/mancả).
EightBitTony

gỡ cài đặt man, gỡ bỏ /usr/bin/manvà cài đặt man-pagessau đó cài đặtman
GAD3R

@EightBitTony: Thêm đầu ra của ls -l /usr/bin/manstat /usr/bin/man, cảm ơn!
Nan Xiao

RPM sử dụng cpionhư định dạng lưu trữ của nó, đó là lý do tại sao chúng tôi gặp lỗi cpio khi cố gắng thay thế tệp/usr/bin/man
GAD3R

3
Chà, tôi không biết tại sao - nhưng /usr/bin/mandường như thư mục của bạn là một thư mục, chứ không phải là một tệp thực thi. Gần như là ai đó đã sao chép thư mục trang man qua / usr / bin / man.
EightBitTony

Câu trả lời:


13

Tôi nghi ngờ chúng ta sẽ có thể cho bạn biết nơi nó đã đi, nhưng bạn chỉ có thể cài đặt lại bằng cách sử dụng yum.

yum reinstall man

yumkhông kiểm tra xem các tệp có tồn tại khi bạn chạy hay không yum install, nó chỉ kiểm tra cơ sở dữ liệu về các gói đã được cài đặt. Nếu ai đó xóa tất cả các tệp bên ngoài trình quản lý gói, nó sẽ không biết (bạn có thể lấy nó để kiểm tra, nhưng nó không mặc định). Sử dụng yum reinstallnói với nó để thực hiện cài đặt mặc dù nó nghĩ rằng gói đã có sẵn.

Tùy thuộc vào những gì đã bị xóa hoặc xóa, bạn có thể cần yum reinstall ...những thứ khác như man-pages.

Cập nhật thông tin mới:

Vì một số lý do, bạn /usr/bin/manlà một thư mục, thay vì một tệp duy nhất và đánh giá theo nội dung có vẻ như ai đó đã làm một cái gì đó kỳ lạ như mv /usr/share/man /usr/binhoặc một cái gì đó kỳ lạ.

Bạn sẽ không thể hoàn tác điều này - bạn cần điều tra, xem những gì đã bị hỏng hoặc di chuyển và sửa nó.

Bạn có thể chỉ có thể loại bỏ /usr/bin/manvà nội dung của nó và sau đó lại cài đặt manman-pagessử dụng yumnhưng không có nghiên cứu kỹ hơn nó sẽ không được rõ ràng.


Tôi cố gắng cài đặt lại man, nhưng nó unpacking of archive failed on file /usr/bin/man: cpio: renamebáo lỗi "". Bạn có thể giúp kiểm tra? Cảm ơn rất nhiều trước!
Nan Xiao

@ Gỡ bỏ /usr/bin/manvà cài đặt lại mansửa nó, thx rất nhiều!
Nan Xiao

2
@NanXiao: Nếu /usr/bin/manlà một thư mục, ai biết những gì khác bị làm hỏng ? Tại thời điểm này, tôi khuyên bạn nên sao lưu các tệp của mình và cài đặt lại HĐH từ đầu. Và đừng để đứa trẻ ba tuổi của bạn chơi với vỏ gốc vào lần tới. ;)
Ilmari Karonen

0

RPM sử dụng cpionhư định dạng lưu trữ của nó. Đó là lý do tại sao chúng tôi thấy một cpiolỗi khi cố gắng thay thế tệp /usr/bin/man.

Bạn cần removepurge mansau đó bạn cần phải cài đặt man-pages.

Mở Terminal và gõ các lệnh sau:

yum check-update
yum update
yum install man-pages
yum install man

Câu hỏi ban đầu cho thấy điều đó yum install manyum install man-pageskhông tạo ra bất kỳ sự khác biệt nào vì yumnghĩ rằng chúng đã được cài đặt.
EightBitTony
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.