Come posso impostare le variabili PATH per tutti gli utenti su un server?


52

Ho appena finito di installare LaTeX per il server Ubuntu della mia azienda che tutti noi SSH utilizzeremo. Alla fine dell'installazione dice questo:

Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined.

Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH.

Most importantly, add /usr/local/texlive/2010/bin/x86_64-linux to your PATH for current and future sessions.

Come posso fare in modo che queste variabili siano impostate per tutti gli utenti sul sistema? (E sì, ho i permessi sudo).


La risposta di @ geirha (con il commento di Rob su MANPATH) risolve questo fatto salvo la variabile INFOPATH. Anche se immagino che non venga spesso utilizzato dagli utenti (?), Qualcuno conosce la posizione corretta per impostarlo? Dovrebbe anche essere /etc/environment ?
belacqua,

@jgbelacqua afaik Debian e alcune altre distribuzioni Linux lo usano ma non Ubuntu. O almeno questo è il meglio che potrei raccogliere dalla ricerca su Google per un'ora.
Rob S.

Quando hai installato TeXlive 2010, avrebbe dovuto chiederti se volevi creare collegamenti simbolici per tutti i file binari. Se avessi detto di sì, questo non sarebbe stato affatto un problema.
frabjous,

@frabjous Non mi ha mai chiesto. L'unico comando che io abbia mai dato è stato "i" all'inizio per iniziare l'installazione. Comunque, dopo aver impostato le variabili, tutto funziona perfettamente.
Rob S.

1
@frabjous: l'opzione di collegamento simbolico sembra mancare ora al programma di installazione. Ho installato TeXLive 2011 oggi e lo trovo più. Ho installato TeXLive in più versioni almeno una dozzina di volte prima, quindi mi chiedevo perché non fosse più lì.
Martin Scharrer,

Risposte:


57

Li aggiungi a /etc/environment.

Probabilmente ha già una linea per PATH, quindi basta aggiungere :/usr/local/texlive/2010/bin/x86_64-linuxalla fine di quello. Quindi aggiungere due nuove righe per MANPATH e INFOPATH.

Vedi https://help.ubuntu.com/community/EnvironmentVariables .

Dopo la modifica /etc/environment, disconnettersi e riconnettersi e verificare che, ad esempio, echo "$MANPATH"restituisca il valore aggiunto.


Alla fine ho anche dovuto modificare /etc/manpath.config. Grazie.
Rob S.

2
Ho eliminato la mia risposta, poiché questa sembra essere una scelta migliore. Secondo help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment è il posto per "Impostazioni variabili d'ambiente che influenzano il sistema nel suo complesso (piuttosto che solo un determinato utente) [...]" /etc/profilee /etc/bash.bashrcsono elencate come "Non raccomandato"
belacqua,

Fastidiosamente non funziona per root!
Gufo

7

Aggiungi questi PATH predefiniti a /etc/profile. Funzionerà per bash e sh. Bash è predefinito in Ubuntu.

PATH=$PATH:<new path you need to add>

echo $SHELLpuò essere utilizzato per determinare la shell dell'utente corrente o può essere visualizzato dal /etc/passwdfile.

In alternativa puoi includerlo anche in /etc/environment. Qui puoi semplicemente aggiungere il PERCORSO alla fine dell'istruzione PATH.


Ho aperto etc / profile in vim e non c'era nulla riguardo PATH in esso. Grazie per la risposta lo stesso.
Rob S.

17
L'ordine di esecuzione dei file è / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess

la modifica della variabile del percorso / etc / profile potrebbe danneggiare il sistema ed è meglio evitarlo. specialmente quando ci si connette all'host remoto tramite ssh.
AmirHossein Rezaei,
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.