Làm cách nào để đặt MANPATH mà không ghi đè mặc định?


13

Tôi đã thêm các thư mục bổ sung vào $PATHbằng cách xuất PATH=/my/dirs:$PATH nhưng tôi không chắc liệu tôi có nên làm như vậy không MANPATH. Bởi vì mặc định MANPATHlà trống nhưng manlệnh hoạt động. Tôi tìm thấy một lệnh được gọi manpathvà hướng dẫn của nó nói If $MANPATH is set, manpath will simply display its contents and issue a warning.. Điều này có nghĩa là thiết lập MANPATH không phải là cách đúng để thêm các thư mục cho manlệnh để tìm kiếm các trang thủ công?

Câu trả lời:


19

Nếu bạn chỉ đơn giản đặt MANPATH, nó sẽ ghi đè mặc định và bạn mất quyền truy cập vào các trang man tiêu chuẩn. Ví dụ: man lshoạt động trước khi cài đặt MANPATH, nhưng không hoạt động sau đó.

Để nối thêm một thư mục tìm kiếm mà không ghi đè mặc định, hãy thêm tiền tố vào dấu hai chấm vào MANPATH như sau:

export MANPATH=":/path/to/custom/man"

Thêm dấu hai chấm cho phép bạn truy cập vào cả trang man của hệ thống tiêu chuẩn và các trang tùy chỉnh được tham chiếu trong biến MANPATH.

Câu trả lời này mang đến cho bạn bởi manpath (1) :

Nếu $ MANPATH được đặt, manpath hiển thị giá trị của nó thay vì xác định nó một cách nhanh chóng. Nếu $ MANPATH được thêm tiền tố bởi dấu hai chấm, thì giá trị của biến được thêm vào danh sách được xác định từ nội dung của tệp cấu hình. Nếu dấu hai chấm xuất hiện ở cuối giá trị trong biến, thì danh sách xác định sẽ được thêm vào nội dung của biến. Nếu giá trị của biến chứa dấu hai chấm (: :), thì danh sách đã xác định được chèn vào giữa giá trị, giữa hai dấu hai chấm.


1

IMO, bạn nên thêm các thư mục tùy chỉnh vào cuối PATH của bạn

PATH=$PATH:/my/dirs

Điều này là để các thư mục tùy chỉnh của bạn không vượt quá nhị phân hệ thống / libs và là một vấn đề bảo mật nhỏ.

bạn đặt MANPATH theo cùng một cách (theo mặc định MANPATH trống).

MANPATH=$MANTPATH:/my/dirs

Bạn không cần phải thiết lập MANPATH với các gói được xử lý tốt, vì vậy nếu nó không bị hỏng thì đừng sửa nó và nếu nó bị hỏng, có lẽ bạn nên nộp báo cáo lỗi;)

Thêm phần này vào ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs

Typo trong tuyên bố thứ hai? MANPATH=$MANTPATH:/my/dirs Có lẽ nên là:MANPATH=$MANPATH:/my/dirs
kevinarpe

"Gói hành vi tốt" nghĩa là gì? Tôi có cả bộ công cụ chưa được cài đặt ở những nơi thông thường (các cụm HPC thường đặt mọi thứ vào / opt). Làm thế nào họ nên đăng ký trang người đàn ông của họ mà không sử dụng $ MANPATH?
i_grok

"các gói hoạt động tốt" được viết để sử dụng các đường dẫn chuẩn và các biến môi trường. Các gói hoạt động kém sử dụng phi tiêu chuẩn, ít nhất là với Ubuntu, các đường dẫn như / opt hoặc không sử dụng các biến môi trường và do đó dẫn đến quan sát của bạn "Tôi có cả bộ công cụ không được cài đặt ở những nơi thông thường (cụm HPC thường đặt những thứ trong / opt) "
Panther
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.