Comment ajouter un répertoire à MANPATH ou INFOPATH?

19

Je pense que je comprends les instructions données dans Comment ajouter un répertoire au PATH? sur l'ajout de répertoires à $ PATH. Mais je ne comprends pas comment ajouter des répertoires à $ MANPATH ou $ INFOPATH.

Aussi - en cherchant de l'aide sur Google, j'ai remarqué que parfois les directions disent export PATH=/usr/share/lib/something:$PATHet parfois elles disent export PATH=$PATH:/usr/share/lib/something. Lequel est-ce?

isomorphismes
la source

Réponses:

24
  1. Ces 2 sont presque les mêmes:

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

    La seule différence est que le premier place le répertoire à ajouter devant et le second le place derrière les répertoires actuels $PATH. Cela n'a d'importance que s'il y a des commandes à l'intérieur /usr/share/lib/somethingqui portent le même nom dans l'un des répertoires de $PATH.

  2. Pour ajouter des répertoires au lien que vous avez publié $MANPATHou $INFOPATHselon les besoins, vous devez le faire en modifiant les fichiers de configuration à l'intérieur du lien.

    Il dit d'ouvrir la version globale de bash.bashrcavec:

    sudo vi /etc/bash.bashrc
    

    et d'ajouter à la fin:

    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
    

    Cela définit $PATH, $MANPATHet $INFOPATH. Et il vous indique également de modifier /etc/manpath.configavec:

    sudo vi /etc/manpath.config
    

    et pour ajouter

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

    dessous # set up PATH to MANPATH mapping.


Si vous n'êtes pas sûr de cela, faites une sauvegarde en premier (jamais une mauvaise chose) avec:

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

La chaîne étrange se transforme en date actuelle. Si vous vous trompez, copiez simplement la sauvegarde sur le fichier d'origine:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
Rinzwind
la source
1
J'ai installé texlive 2012 sur Ubuntu Precise et me echo $MANPATHrevient /usr/local/texlive/2012/texmf/doc/man. Lorsque j'ajoute les chemins d'accès aux rapports de configuration bash /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manet zsh continuent de signaler /usr/local/texlive/2012/texmf/doc/man. Pour zsh j'ajoute les chemins à /etc/zsh/zshrc. Je ne suis pas sûr que ce soit correct. J'ai également essayé le montage /etc/environment, comme suggéré ici , mais sans succès.
JJD
Quelle commande puis-je voir après avoir écrit MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? J'ai essayé man tlmgret ça dit que ça n'existe pas.
Arturo
2

Si vos pages de manuel sont dans /usr/local/myproject/man, tout ce que vous devez faire est d'ajouter cela à (la fin de) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man
Michel
la source
0

x:y:z:$PATHou $PATH:x:y:z?

À peine différent. $PATHcontient une :liste séparée des endroits où bash (le shell / terminal) doit rechercher un programme.

Par exemple, si vous saisissez catla façon dont le terminal comprend ce que cela signifie, vous devez parcourir les premier, deuxième et troisième éléments de $PATH, puis enregistrer le premier emplacement qu'il trouve pour des invocations ultérieures cat.

Si j'ai deux versions différentes d'un programme à deux endroits différents, l'une d'entre elles étant préférée, et que $PATHle shell recherche le mauvais ordre, alors il y a un problème. Sinon, pas de problème.


exportation

Ouvrez un terminal et saisissez

echo $a
a=5
echo a
echo $a

Vous verrez que a=5définir la valeur de la variable et $afait référence au nom de la variable, pas à la valeur.

Ouvrez un deuxième terminal et tapez echo $a. Il devrait de nouveau être vierge.

La différence entre exportet affectation ( =) est expliquée ici: /programming/1158091/defining-a-variable-with-or-without-export .

isomorphismes
la source