Як додати каталог MANPATH чи INFOPATH?


19

Я думаю, я розумію інструкції, наведені в розділі Як додати каталог до PATH? про додавання каталогів до $ PATH. Але я не розумію, як додати каталоги в $ MANPATH або $ INFOPATH.

Також - гуляючи по допомогу, я помітив, що іноді говорять напрямки, export PATH=/usr/share/lib/something:$PATHа іноді й кажуть export PATH=$PATH:/usr/share/lib/something. Що це таке?

Відповіді:


24
  1. Ці 2 майже однакові:

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

    Єдина відмінність полягає в тому, що перший ставить каталог для додавання спереду, а другий ставить його за поточні каталоги $PATH. Важливо лише те, що всередині є команди, /usr/share/lib/somethingякі мають однакову назву всередині одного з каталогів у $PATH.

  2. Щоб додати каталоги до $MANPATHабо $INFOPATHза потребою із опублікованого посилання, зробіть це, змінивши конфігураційні файли всередині посилання.

    Він говорить про відкриття глобальної версії програми за bash.bashrcдопомогою:

    sudo vi /etc/bash.bashrc
    

    і додати в кінці:

    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
    

    Це набори $PATH, $MANPATHі $INFOPATH. А також дозволяє редагувати за /etc/manpath.configдопомогою:

    sudo vi /etc/manpath.config
    

    і додати

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

    під ним # set up PATH to MANPATH mapping.


Якщо ви не впевнені в цьому, зробіть резервну копію 1-го (ніколи не поганого) за допомогою:

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

Дивна рядок змінюється на поточну дату. Якщо ви заплуталися, просто скопіюйте резервну копію назад у вихідний файл:

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

1
Я встановив texlive 2012 на Ubuntu Precision і echo $MANPATHповертається /usr/local/texlive/2012/texmf/doc/manдо мене. Коли я додаю шляхи до конфігураційних звітів bash /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manта zsh досі /usr/local/texlive/2012/texmf/doc/man. Для zsh я додаю шляхи до /etc/zsh/zshrc. Я не впевнений, чи правильно це. Я також спробував редагувати /etc/environment, як тут запропоновано , хоча і без успіху.
JJD


Яку команду я бачу після написання MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Я спробував, man tlmgrі воно говорить, що його не існує.
Артуро

2

Якщо у вас є чоловічі сторінки /usr/local/myproject/man, все, що вам потрібно зробити, - це додати це до (в кінці) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHабо $PATH:x:y:z?

Ледь інакше. $PATHмістить :розділений список місць, де bash (оболонка / термінал) повинен перевірити програму.

Наприклад, якщо ви вводите catте, як термінал розуміє, що це означає - переглядати перший, другий, третій елементи $PATH, а потім зберегти перше місцезнаходження, яке він знайде, для пізніших викликів cat.

Якщо у мене є дві різні версії програми у двох різних місцях, причому одна з них є кращою, і $PATHговорить оболонці шукати в неправильному порядку, то є проблема. Інакше жодних проблем.


експорт

Відкрийте термінал і введіть

echo $a
a=5
echo a
echo $a

Ви побачите, що a=5встановлено значення змінної і $aпосилається на ім'я змінної, а не на значення.

Відкрийте другий термінал і введіть echo $a. Він знову повинен бути порожнім.

Різниця між exportі призначенням ( =) пояснюється тут: /programming/1158091/defining-a-variable-with-or-without-export .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.