Come impostare MANPATH senza ignorare le impostazioni predefinite?


13

Ho aggiunto ulteriori directory a $PATHesportando PATH=/my/dirs:$PATH Ma non sono sicuro se dovrei fare lo stesso per MANPATH. Perché il valore predefinito MANPATHè vuoto ma il mancomando funziona. Ho trovato un comando chiamato manpathe il suo manuale dice If $MANPATH is set, manpath will simply display its contents and issue a warning.. Questo significa che l'impostazione MANPATH non è il modo giusto per aggiungere directory per i mancomandi per cercare le pagine del manuale?

Risposte:


19

Se si imposta semplicemente MANPATH, esso sostituisce quello predefinito e si perde l'accesso alle pagine man standard. Ad esempio, man lsfunziona prima di impostare MANPATH, ma non funziona in seguito.

Per aggiungere una directory di ricerca senza sovrascrivere il valore predefinito, aggiungi un prefisso a MANPATH in questo modo:

export MANPATH=":/path/to/custom/man"

L'aggiunta dei due punti consente di accedere sia alle pagine man standard del sistema sia alle pagine personalizzate a cui fa riferimento la variabile MANPATH.

Questa risposta ti è stata fornita da manpath (1) :

Se è impostato $ MANPATH, manpath mostra il suo valore anziché determinarlo al volo. Se $ MANPATH è preceduto da due punti, il valore della variabile viene aggiunto all'elenco determinato dal contenuto dei file di configurazione. Se i due punti arrivano alla fine del valore nella variabile, l'elenco determinato viene aggiunto al contenuto della variabile. Se il valore della variabile contiene due due punti (: :), allora l'elenco determinato viene inserito al centro del valore, tra i due due punti.


1

IMO dovresti aggiungere le tue directory personalizzate alla fine del tuo PERCORSO

PATH=$PATH:/my/dirs

Questo in modo che le tue directory personalizzate non superino i binari / librerie di sistema ed è un problema di sicurezza minore.

si imposta MANPATH allo stesso modo (MANPATH è vuoto per impostazione predefinita).

MANPATH=$MANTPATH:/my/dirs

Non dovresti aver bisogno di impostare un MANPATH con pacchetti ben educati, quindi se non è rotto non risolverlo e se è rotto, forse è meglio presentare una segnalazione di bug;)

Aggiungi questo a ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs

Errore di battitura nella seconda affermazione? MANPATH=$MANTPATH:/my/dirs Forse dovrebbe essere:MANPATH=$MANPATH:/my/dirs
kevinarpe l'

Cosa intendi con "pacchetti ben educati"? Ho un intero set di strumenti che non sono installati nei soliti posti (i cluster HPC spesso inseriscono / optano). Come dovrebbero registrare le loro pagine man senza usare $ MANPATH?
i_grok,

"pacchetti ben educati" sono scritti per utilizzare percorsi standard e variabili ambientali. I pacchetti mal educati usano percorsi non standard, almeno per Ubuntu, come / opt o non usano variabili ambientali e quindi portano alla tua osservazione "Ho un intero set di strumenti che non sono installati nei soliti posti (i cluster HPC spesso mettono cose in / opt) "
Pantera
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.