Wie setze ich Umgebungsvariablen?

90

Ich versuche Apache Tomcat auf meinem PC einzurichten und möchte, dass ich eine Umgebungsvariable für einrichte CATALINA_HOME. Weiß jemand, wie man das macht?

jumpnett
quelle

Antworten:

100

In Bash können Sie Variablen wie folgt festlegen:

export CATALINA_HOME=/opt/catalina

Die meisten anderen Muscheln folgen dieser Konvention, aber nicht alle. Sie können es dauerhaft ~/.profilefür die Bash festlegen (und wie zuvor haben andere Shells andere Positionen)

Ressu
quelle
6
für die ganze Sitzung Variablen, help.ubuntu.com empfiehlt ~/.profileals wahrscheinlich die beste Datei für Umgebungsvariable Zuordnungen bei der Platzierung, da sie automatisch von der Displaymanager während des Startvorgangs Desktop - Sitzung sowie durch die Login - Shell , wenn man logs-in ausgeführt wird von der Textkonsole.
McDowell
Die Antwort wurde aktualisiert. Der Grund, warum ich stattdessen .bashrc verwendet habe, war, dass .profile irgendwann nicht mehr automatisch bezogen wurde. Aber wenn es jetzt funktioniert, ist es besser, es zu benutzen.
Ressu
6
Das Einstellen ~/.profilefunktioniert bei mir nicht. Es funktioniert zwar in ~/.bashrc.
Jumpnett
Das Einstellen ~/.bash_profilefunktioniert auch.
Jumpnett
Es gibt auch eine systemweite Datei in / etc. Dies funktioniert, ist aber pro Benutzer.
Ab dem
26

Umgebungsvariablen sollten bereits funktionieren

Wenn Sie das Tomcat6-Paket aus den Ubuntu-Repositorys verwenden, sind CATALINA_HOME und andere Umgebungsvariablen bereits im Startskript festgelegt /etc/init.d/tomcat6.

Wenn Sie tomcat außerhalb des Paketmanagers installieren (hoffentlich in / opt oder an einer anderen Stelle außerhalb des verwalteten Dateisystems), TOMCAT/bin/startup.shsollte beim Ausführen von the der relative Speicherort zum Definieren von CATALINA_HOME verwendet werden.

Umgebungsvariable einstellen

Wenn Sie aus irgendeinem Grund immer noch eine Umgebungsvariable festlegen müssen, können Sie ein Terminalfenster öffnen und den folgenden Befehl eingeben:

export CATALINA_HOME=/path/to/the/root/folder/of/tomcat

Diese Umgebungsvariable funktioniert jetzt in diesem Terminalfenster. Wenn Sie jedoch ein anderes Fenster öffnen oder sich abmelden / anmelden, verlieren Sie diese Einstellung.

Machen Sie die Umgebungsvariable permanent

Um die Umgebungsvariableneinstellung dauerhaft zu machen, können Sie die Einstellung an mehreren Stellen definieren.

Um wirklich sicherzugehen, dass die Einstellung übernommen wird, fügen Sie die obige Einstellung zu einem der Startskripte für Tomcat hinzu:

yourtomcatfolder/bin/startup.sh

yourtomcatfolder/bin/catalina.sh

Hinweis: startup.sh ruft die Datei catalina.sh auf. Sie sollten die Einstellung am Anfang einer dieser Dateien hinzufügen (nach anfänglichen Kommentaren).

Die Standardmethode für globale Umgebungsvariablen ist das Hinzufügen eines Eintrags in /etc/environment(Sie verwenden den Befehl export in dieser Datei nicht, da es sich nicht um ein normales Bash-Skript handelt).

CATALINA_HOME=/path/to/the/root/folder/of/tomcat

Nicht empfohlen

Sie können die Umgebungsvariablen in den Konfigurationsdateien für die Bash (Befehlszeilen-Shell) festlegen. Diese werden jedoch nicht empfohlen, da sie nicht immer abgerufen werden (z. B. wenn Sie einen Server ausführen, bei dem Sie sich nicht anmelden, um Tomcat auszuführen): ~ / .bashrc | ~ / .profile | /etc.bash.bashrc | / etc / profile

jr0cket
quelle
5
Es sollte nicht das startupoder catalina-Skript sein, sondern das setenv.shoder setenv.bat-Skript, das es bei Bedarf erstellt: "Abgesehen von CATALINA_HOME und CATALINA_BASE können alle Umgebungsvariablen im Skript" setenv "angegeben werden. Das Skript wird entweder in CATALINA_BASE / bin oder in CATALINA_HOME abgelegt / bin und heißt setenv.bat (unter Windows) oder setenv.sh (unter * nix). Die Datei muss lesbar sein. " ( Ausführen des Apache Tomcat 7.0-Servlet / JSP-Containers , Abschnitt 3.4)
Olathe,
22

Um permanente Umgebungsvariablen in den neuesten Ubuntu-Versionen (ab 14.04) festzulegen, fügen Sie die Variablen hinzu /etc/environment. Befolgen Sie dazu die folgenden Anweisungen:

Öffnen Sie das Terminal und führen Sie es aus

sudo -H gedit /etc/environment

das geben sie ihr passwort dann in der abgefragten textdatei ein

Dann fügen Sie die Variablen wie

ANT_HOME="/opt/ANT/"

Ein Beispiel dafür /etc/environmentist unten angegeben

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-oracle/"
AXIS2_HOME="/opt/axis2-1.7.4/"
ANT_HOME="/opt/apache-ant-1.9.7/"

Vergessen Sie nicht, sich abzumelden und erneut anzumelden, um die Umgebungsvariablen zu aktivieren.

Kasun Siyambalapitiya
quelle
6

Der beste Ort dafür hängt davon ab, wie und wo Sie Tomcat installiert haben, welche Anwendungen Sie diese Einstellung übernehmen möchten und wie global der Bereich sein soll.

In der Ubuntu-Dokumentation zu Umgebungsvariablen werden die Vor- und Nachteile der verschiedenen Optionen erläutert.

McDowell
quelle
Worauf beziehen Sie sich, wenn Sie sagen, "der beste Ort dafür"?
Jumpnett
@jumpnett - Ich meine, wo man die Einstellung persistent macht, damit sie den Anwendungen immer zur Verfügung steht. Es sei denn, Sie geben die Einstellung jedes Mal gerne ein oder möchten Ihr eigenes Skript schreiben.
McDowell
3
nano ~/.bashrc

Dies wird höchstwahrscheinlich bereits eine ganze Menge Daten enthalten. Die meisten Definitionen hier beziehen sich auf das Festlegen von Bash-Optionen, die sich nicht auf Umgebungsvariablen beziehen. Sie können Umgebungsvariablen genau wie in der Befehlszeile festlegen:

export VARNAME=value

VERKNÜPFUNG

Ich habe es auf Ubuntu 16.04 getestet. Funktioniert super.

Sunny127
quelle
1

Nachdem ich die Ubuntu-Dokumentation zu Umgebungsvariablen durchgesehen hatte, kam ich zu folgender Problemumgehung:

##Save & run the following in a shell script,

export ENVIRON_VAR_NAME = Value
# any other initializations like
export PATH=$PWD:$PATH
bash

In der letzten Zeile wird eine untergeordnete Shell erstellt, die Umgebungsvariablenwerte von der übergeordneten Shell (die gerade festgelegt wurde) erbt.

Ashish Sadhwani
quelle