Wie füge ich ein Verzeichnis zu MANPATH oder INFOPATH hinzu?

19

Ich denke, ich verstehe die Anweisungen unter Wie füge ich ein Verzeichnis zum PATH hinzu? über das Hinzufügen von Verzeichnissen zu $ ​​PATH. Aber ich verstehe nicht, wie man Verzeichnisse zu $ ​​MANPATH oder $ INFOPATH hinzufügt.

Auch - beim Herum googeln um Hilfe ist mir aufgefallen, dass manchmal Anweisungen sagen export PATH=/usr/share/lib/something:$PATHund manchmal sie sagen export PATH=$PATH:/usr/share/lib/something. Welches ist es?

Isomorphismen
quelle

Antworten:

24
  1. Diese 2 sind fast gleich:

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

    Der einzige Unterschied besteht darin, dass der erste Ordner das hinzuzufügende Verzeichnis voranstellt und der zweite Ordner das aktuelle Verzeichnis dahinterstellt $PATH. Es ist nur wichtig, ob sich Befehle /usr/share/lib/somethingmit demselben Namen in einem der Verzeichnisse in befinden $PATH.

  2. Um Verzeichnisse zu dem von Ihnen geposteten Link hinzuzufügen $MANPATHoder von diesem aus $INFOPATHnach Bedarf hinzuzufügen, müssen Sie die Konfigurationsdateien innerhalb des Links ändern.

    Es heißt, die globale Version von bash.bashrcmit zu öffnen :

    sudo vi /etc/bash.bashrc
    

    und am Ende hinzufügen:

    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
    

    Diese Sätze $PATH, $MANPATHund $INFOPATH. Und es sagt Ihnen auch, /etc/manpath.configmit zu bearbeiten :

    sudo vi /etc/manpath.config
    

    und hinzuzufügen

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

    darunter # set up PATH to MANPATH mapping.


Wenn Sie sich nicht sicher sind, erstellen Sie zuerst ein Backup (niemals eine schlechte Sache) mit:

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

Die seltsame Zeichenfolge ändert sich in das aktuelle Datum. Wenn Sie durcheinander sind, kopieren Sie das Backup einfach wieder über die Originaldatei:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
Rinzwind
quelle
1
Ich habe texlive 2012 auf Ubuntu Precise installiert und echo $MANPATHkehre /usr/local/texlive/2012/texmf/doc/manzu mir zurück. Wenn ich die Pfade zur Konfiguration hinzufüge, meldet bash /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manund zsh immer noch /usr/local/texlive/2012/texmf/doc/man. Für zsh füge ich die Pfade hinzu /etc/zsh/zshrc. Ich bin mir nicht sicher, ob das richtig ist. Ich habe auch versucht /etc/environment, wie hier vorgeschlagen , zu bearbeiten , allerdings ohne Erfolg.
JJD,
Welchen Befehl kann ich nach dem Schreiben sehen MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Ich habe es versucht man tlmgrund es heißt, dass es nicht existiert.
Arturo
2

Wenn Ihre Manpages in sind /usr/local/myproject/man, müssen Sie nur das (Ende von) hinzufügen /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man
Michel
quelle
0

x:y:z:$PATHoder $PATH:x:y:z?

Kaum anders. $PATHenthält eine :getrennte Liste von Stellen, an denen bash (die Shell / das Terminal) nach einem Programm suchen soll.

Wenn Sie beispielsweise eingeben, catwie das Terminal versteht, was es bedeutet, durch das erste, zweite und dritte Element von zu schauen $PATH, speichern Sie den ersten gefundenen Ort für spätere Aufrufe von cat.

Wenn ich zwei verschiedene Versionen eines Programms an zwei verschiedenen Orten habe, von denen eine bevorzugt wird, und $PATHdie Shell anweist, in der falschen Reihenfolge zu suchen, liegt ein Problem vor. Ansonsten kein Problem.


Export

Öffnen Sie ein Terminal und geben Sie ein

echo $a
a=5
echo a
echo $a

Sie werden sehen, dass a=5der Variablenwert festgelegt wird und $asich auf den Variablennamen bezieht, nicht auf den Wert.

Öffnen Sie ein zweites Terminal und geben Sie ein echo $a. Es sollte wieder leer sein.

Der Unterschied zwischen exportund assign ( =) wird hier erklärt: /programming/1158091/defining-a-variable-with-or-with-with-export .

Isomorphismen
quelle