Wie setze ich PATH-Variablen für alle Benutzer auf einem Server?

52

Ich habe gerade die Installation von LaTeX für den Ubuntu-Server meines Unternehmens abgeschlossen, auf dem wir alle SSH verwenden möchten. Am Ende der Installation heißt es:

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.

Wie mache ich das, damit diese Variablen für alle Benutzer im System festgelegt werden? (Und ja, ich habe Sudo-Berechtigungen).

Rob S.
quelle
Die Antwort von @ geirha (mit Robs Kommentar zu MANPATH) löst dies mit Ausnahme der Variablen INFOPATH auf. Obwohl ich mir vorstelle, dass es nicht oft von Benutzern verwendet wird (?), Kennt jemand den richtigen Ort, um das einzustellen? Sollte es auch sein /etc/environment ?
Belacqua
@jgbelacqua afaik Debian und einige andere Linux-Distributionen verwenden es, aber nicht Ubuntu. Zumindest ist das das Beste, was ich für eine Stunde bei der Suche auf Google sammeln konnte.
Rob S.
Bei der Installation von TeXlive 2010 sollten Sie gefragt werden, ob Sie Symlinks für alle Binärdateien erstellen möchten. Wenn Sie ja gesagt hätten, wäre dies überhaupt kein Problem gewesen.
Frabjous
@frabjous Es hat mich nie gefragt. Der einzige Befehl, den ich jemals gegeben habe, war "i" am Anfang, um die Installation zu starten. Nach dem Einstellen der Variablen funktioniert alles einwandfrei.
Rob S.
1
@frabjous: Die Symlink-Option scheint jetzt im Installationsprogramm zu fehlen. Ich habe heute TeXLive 2011 installiert und konnte es nicht mehr finden. Ich habe TeXLive mindestens ein Dutzend Mal in mehreren Versionen installiert und mich gefragt, warum es nicht mehr vorhanden ist.
Martin Scharrer

Antworten:

57

Sie fügen diese hinzu /etc/environment.

Wahrscheinlich hat es bereits eine Zeile für PATH, also hängen Sie sie einfach :/usr/local/texlive/2010/bin/x86_64-linuxan das Ende an. Fügen Sie dann zwei neue Zeilen für MANPATH und INFOPATH hinzu.

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

Melden Sie sich nach der Bearbeitung /etc/environmentab und wieder an und überprüfen Sie, ob z. B. echo "$MANPATH"der von Ihnen hinzugefügte Wert ausgegeben wird.

geirha
quelle
Am Ende musste ich auch /etc/manpath.config bearbeiten. Vielen Dank.
Rob S.
2
Ich habe meine Antwort gelöscht, da dies eine bessere Wahl zu sein scheint. Laut help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment ist dies der Ort für "Umgebungsvariableneinstellungen, die das System als Ganzes betreffen (und nicht nur einen bestimmten Benutzer) [...]" /etc/profileund /etc/bash.bashrcals "Nicht empfohlen" aufgeführt.
Belacqua
Ärgerlicherweise funktioniert das nicht für root!
Eule
7

Fügen Sie diesen Standardpfad zu hinzu /etc/profile. Es wird für Bash und Sh arbeiten. Bash ist in Ubuntu Standard.

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

echo $SHELLkann verwendet werden, um die Shell des aktuellen Benutzers zu bestimmen, oder kann aus einer /etc/passwdDatei angezeigt werden.

Alternativ können Sie es /etc/environmentauch einbinden. Hier können Sie einfach den PATH am Ende der PATH-Anweisung hinzufügen.

Jamess
quelle
Ich habe etc / profile in vim geöffnet und es war nichts in Bezug auf PATH drin. Trotzdem danke für die Antwort.
Rob S.
17
Die Reihenfolge der Ausführung der Dateien ist / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess
Das Bearbeiten der Pfadvariablen / etc / profile kann das System beschädigen und ist besser zu vermeiden. Besonders, wenn Sie eine Verbindung zum Remote-Host über ssh herstellen.
AmirHossein Rezaei