Làm cách nào để thêm thư mục vào MANPATH hoặc INFOPATH?


19

Tôi nghĩ rằng tôi hiểu các hướng dẫn được đưa ra trong Cách thêm thư mục vào PATH? về việc thêm thư mục vào $ PATH. Nhưng tôi không hiểu làm thế nào để thêm các thư mục vào $ MANPATH hoặc $ INFOPATH.

Ngoài ra - trong việc tìm kiếm sự giúp đỡ, tôi đã nhận thấy rằng đôi khi chỉ đường nói export PATH=/usr/share/lib/something:$PATHvà đôi khi họ nói export PATH=$PATH:/usr/share/lib/something. Đó là cái gì

Câu trả lời:


24
  1. Cả 2 đều gần giống nhau:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    Sự khác biệt duy nhất là cái đầu tiên đặt thư mục để thêm vào phía trước và cái thứ hai đặt nó phía sau các thư mục hiện tại $PATH. Nó chỉ quan trọng nếu có các lệnh bên trong /usr/share/lib/somethingcó cùng tên bên trong một trong các thư mục trong $PATH.

  2. Để thêm thư mục vào $MANPATHhoặc $INFOPATHtheo yêu cầu từ liên kết bạn đã đăng, bạn làm điều đó bằng cách thay đổi các tệp cấu hình bên trong liên kết.

    Nó nói để mở phiên bản toàn cầu bash.bashrcvới:

    sudo vi /etc/bash.bashrc
    

    và để thêm vào cuối:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    Bộ này $PATH, $MANPATH$INFOPATH. Và nó cũng cho bạn biết để chỉnh sửa /etc/manpath.configvới:

    sudo vi /etc/manpath.config
    

    và để thêm

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    bên dưới # set up PATH to MANPATH mapping.


Nếu bạn không chắc chắn về điều này, hãy tạo bản sao lưu thứ 1 (không bao giờ là điều xấu) với:

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

Chuỗi kỳ lạ thay đổi vào ngày hiện tại. Nếu bạn gặp rắc rối, chỉ cần sao chép lại bản sao lưu trên tệp gốc:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  

1
Tôi đã cài đặt texlive 2012 trên Ubuntu Precise và echo $MANPATHtrả lại /usr/local/texlive/2012/texmf/doc/mancho tôi. Khi tôi thêm đường dẫn vào báo cáo bash cấu hình /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manvà zsh vẫn báo cáo /usr/local/texlive/2012/texmf/doc/man. Đối với zsh tôi thêm các đường dẫn đến /etc/zsh/zshrc. Tôi không chắc chắn nếu điều này là chính xác. Tôi cũng đã thử chỉnh sửa /etc/environment, như đề xuất ở đây , mặc dù không thành công.
JJD


Tôi có thể thấy lệnh nào sau khi viết MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Tôi đã thử man tlmgrvà nó nói rằng nó không tồn tại.
Arturo

2

Nếu trang người đàn ông của bạn ở trong /usr/local/myproject/man, tất cả những gì bạn cần làm là thêm nó vào (cuối của) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHhay $PATH:x:y:z?

Hoàn toàn khác nhau. $PATHchứa một :danh sách phân tách các địa điểm nơi bash (shell / terminal) sẽ kiểm tra chương trình.

Ví dụ: nếu bạn nhập catcách thiết bị đầu cuối hiểu ý nghĩa của việc xem qua các phần tử thứ nhất, thứ hai, thứ ba $PATH, sau đó lưu vị trí đầu tiên mà nó tìm thấy cho các lần gọi sau cat.

Nếu tôi có hai phiên bản khác nhau của một chương trình ở hai nơi khác nhau, với một trong số chúng được ưu tiên và $PATHbảo trình tìm kiếm theo thứ tự sai, thì có vấn đề. Nếu không, không có vấn đề.


xuất khẩu

Mở một thiết bị đầu cuối và gõ

echo $a
a=5
echo a
echo $a

Bạn sẽ thấy rằng a=5đặt giá trị biến và $atham chiếu đến tên biến chứ không phải giá trị.

Mở một thiết bị đầu cuối thứ hai và gõ echo $a. Nó sẽ lại trống.

Sự khác biệt giữa exportvà gán ( =) được giải thích ở đây: /programming/1158091/defining-a-variable-with-or-without-export .

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.