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 man
lệ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 1
số 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 local
thư 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 mandb
lệnh. Điều này sẽ cập nhật man
cơ 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
man
lệnhmandb
lệnh/usr/bin/dh_installman
nếu bạn có thể đọc Perl, được cài đặt cùng với debhelper
gói./usr/local/man
cũ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 MANPATH
là 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/man
sẽ tự động được tìm kiếm các trang man bất cứ khi nào <path>/bin
là 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 manpath
và /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.1
bấ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 examplecommand
tì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/man
tồn tại. Khi thực hiện strace (1) trên man
vớ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/man
tồ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ó $PATH
câu hỏi $HOME/bin
. Khi thực hiện strace (1) trên man
vớ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/man
Dành cho $HOME/bin
$HOME/bin
-> $HOME/man
Tô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
.
sudo
gì?