Come faccio ad aggiungere una directory a MANPATH o INFOPATH?


19

Penso di comprendere le istruzioni fornite in Come aggiungere una directory al PERCORSO? sull'aggiunta di directory a $ PATH. Ma non capisco come aggiungere directory a $ MANPATH o $ INFOPATH.

Inoltre - nel cercare su Google in cerca di aiuto ho notato che a volte le indicazioni dicono export PATH=/usr/share/lib/something:$PATHe talvolta dicono export PATH=$PATH:/usr/share/lib/something. Cos'è questo?

Risposte:


24
  1. Questi 2 sono quasi gli stessi:

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

    L'unica differenza è che la prima mette la directory da aggiungere in primo piano e la seconda la mette dietro le directory correnti $PATH. Importa solo se ci sono comandi all'interno /usr/share/lib/somethingche hanno lo stesso nome all'interno di una delle directory in $PATH.

  2. Per aggiungere directory $MANPATHo $INFOPATHcome richiesto dal link che hai pubblicato, devi farlo modificando i file di configurazione all'interno del link.

    Dice di aprire la versione globale di bash.bashrccon:

    sudo vi /etc/bash.bashrc
    

    e da aggiungere alla fine:

    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
    

    Questo imposta $PATH, $MANPATHe $INFOPATH. E ti dice anche di modificare /etc/manpath.configcon:

    sudo vi /etc/manpath.config
    

    e da aggiungere

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

    sotto # set up PATH to MANPATH mapping.


Se non sei sicuro di ciò, esegui prima un backup (mai una cosa negativa) con:

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 strana stringa cambia nella data corrente. Se sbagli, basta copiare il backup sul file originale:

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

1
Ho installato texlive 2012 su Ubuntu Precise e echo $MANPATHtorna /usr/local/texlive/2012/texmf/doc/manda me. Quando aggiungo i percorsi ai rapporti bash di configurazione /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/mane zsh segnala ancora /usr/local/texlive/2012/texmf/doc/man. Per zsh aggiungo i percorsi a /etc/zsh/zshrc. Non sono sicuro che sia corretto. Ho anche provato a modificare /etc/environment, come suggerito qui , sebbene senza successo.
JJD


Quale comando posso vedere dopo aver scritto MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Ho provato man tlmgre dice che non esiste.
Arturo

2

Se le tue pagine man sono presenti /usr/local/myproject/man, tutto ciò che devi fare è aggiungerlo a (fine di) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHo $PATH:x:y:z?

A malapena diverso. $PATHcontiene un :elenco separato di luoghi in cui bash (shell / terminale) dovrebbe verificare la presenza di un programma.

Ad esempio, se si digita catil modo in cui il terminale comprende cosa significa guardare attraverso il primo, il secondo, il terzo elemento di $PATH, quindi salvare la prima posizione trovata per le successive invocazioni cat.

Se ho due diverse versioni di un programma in due posti diversi, con uno dei quali è preferito, e $PATHdice alla shell di cercare nell'ordine sbagliato, allora c'è un problema. Altrimenti, nessun problema.


esportare

Apri un terminale e digita

echo $a
a=5
echo a
echo $a

Vedrai che a=5imposta il valore della variabile e si $ariferisce al nome della variabile, non al valore.

Apri un secondo terminale e digita echo $a. Dovrebbe essere di nuovo vuoto.

La differenza tra exporte assegnazione ( =) è spiegata qui: /programming/1158091/defining-a-variable-with-or-without-export .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.