Câu trả lời:
Đầu tiên, tìm ra phần người đàn ông của bạn thuộc về. Nếu đó là một lệnh, nó có thể thuộc về phần 1. Bạn có thể đọc manpage cho manlệnh
để xem mô tả về các phần khác nhau và các số tương ứng của chúng.
Sao chép trang người đàn ông của bạn vào /usr/local/share/man/man1/(thay đổi 1số phần của bạn nếu cần). Bạn cũng có thể cài đặt nó /usr/share/man/man1/, nhưng cách tốt nhất là sử dụng localthư mục cho các tệp được cài đặt mà không cần sử dụng trình quản lý gói APT:
sudo cp examplecommand.1 /usr/local/share/man/man1/
Chạy mandblệnh. Điều này sẽ cập nhật mancơ sở dữ liệu nội bộ:
sudo mandb
Đó là nó! Bạn sẽ có thể xem trang người đàn ông bằng cách chạy:
man 1 examplecommand
manlệnh
mandblệnh
/usr/bin/dh_installmannếu bạn có thể đọc Perl, được cài đặt cùng với debhelpergói./usr/local/mancũng như được đề xuất trong ánh xạ PATH sang MANPATH trong /etc/manpath.config.
Nếu bạn chỉ cần cài đặt trang man cục bộ :
Nếu MANPATHlà unset, hoặc bao gồm một thành phần rỗng (tức là bắt đầu với :, kết thúc với :, hoặc chứa ::), sau đó <path>/share/mansẽ tự động được tìm kiếm các trang man bất cứ khi nào <path>/binlà một phần của PATH, cho tất cả các giá trị của<path> .
Điều này cung cấp một cách rất đơn giản để thêm các trang man cho phần mềm được cài đặt cục bộ. Có một số chi tiết trong man manpathvà /etc/manpath.config, nhưng tôi không thấy bất kỳ đề cập nào về ánh xạ chung từ <path>/binđến <path>/share/man.
MANPATH=<local path to the man pages>:$MANPATHđể bạn ${HOME}/.bashrc(phiên không đăng nhập) hoặc ${HOME}/.profile(phiên đăng nhập). Trong trường hợp của tôi, tôi đã thiết lập một thư mục cục bộ cho các trang man ${HOME}/share/man/, trong đó bắt chước hệ thống tệp Linux cổ điển. Tôi đã tạo ${HOME}/share/man/man.1, sau đó chứa một liên kết tượng trưng đến vị trí tới tệp examplecommand.1bất cứ nơi nào trình cài đặt chương trình đã đặt nó (cấu hình 'tiền tố'). Ra mắt man examplecommandtìm thấy các trang người đàn ông tại điểm. Theo cách này, cài đặt là cục bộ, mặc dù, không phải toàn hệ thống.
<path>/bin-> <path>/share/mantồn tại. Khi thực hiện strace (1) trên manvới MANPATH=:/nonexistingdir, tôi thấy những điều sau đây: - <path>/bin-> <path>/man Đây là trên một hệ thống Debain Buster.
Câu trả lời của @ ntc2 ở trên là câu hỏi mà mọi người nên xem qua. Tôi muốn thêm một số bình luận bổ sung không phù hợp trong phần bình luận:
Cách tiếp cận của @ ntc2 cung cấp một đường dẫn cho những người chỉ cần thiết lập PATH của họ (mà họ đã mong đợi) cho các nhị phân cục bộ.
Tuy nhiên, tôi không nghĩ ánh xạ chung <path>/bin-> <path>/share/mantồn tại cho tất cả các đường dẫn trong $PATH. Có vẻ như ánh xạ cụ thể này được tránh khi có $PATHcâu hỏi $HOME/bin. Khi thực hiện strace (1) trên manvới MANPATH=:/nonexistingdir, tôi thấy các tra cứu sau:
Đối với bất kỳ yếu tố nào trong $PATHđó không phải là$HOME/bin
<path>/bin -> <path>/man<path>/bin -> <path>/bin/man<path>/bin -> <path>/share/man<path>/bin -> <path>/bin/share/manDành cho $HOME/bin
$HOME/bin -> $HOME/manTôi không biết tại sao nó bỏ qua những người khác. Đây là trên hệ thống Debian Buster. Nó có thể khác nhau trên các hệ thống khác.
Đối với tôi, điều này có nghĩa là con đường an toàn nhất để cài đặt trang con người là <path>/man, vì nó được đảm bảo sẽ được tìm thấy nếu nó nằm trong $PATH.
sudogì?