Jak ustawić zmienne środowiskowe?

90

Próbuję skonfigurować Apache Tomcat na moim komputerze i chcę, aby skonfigurować zmienną środowiskową dla CATALINA_HOME. Czy ktoś wie jak to zrobić?

jumpnett
źródło

Odpowiedzi:

100

W bash możesz ustawić takie zmienne:

export CATALINA_HOME=/opt/catalina

większość innych powłok przestrzega tej konwencji, ale nie wszystkie. Możesz ustawić go na stałe ~/.profilena bash (i jak poprzednio, inne pociski mają inne lokalizacje)

Ressu
źródło
6
w przypadku zmiennych obejmujących całą sesję help.ubuntu.com zaleca ~/.profilejako prawdopodobnie najlepszy plik do umieszczania przypisań zmiennych środowiskowych, ponieważ jest on wykonywany automatycznie przez DisplayManager podczas sesji pulpitu procesu uruchamiania, a także przez powłokę logowania podczas logowania z konsoli tekstowej.
McDowell,
Zaktualizowałem odpowiedź. Powodem, dla którego użyłem .bashrc, było to, że w pewnym momencie .profile nie było pozyskiwane automatycznie. Ale jeśli teraz działa, lepiej go użyć.
Ressu,
6
Ustawienie tego ~/.profilenie działa dla mnie. ~/.bashrcAle to działa .
jumpnett,
Ustawienie go również ~/.bash_profiledziała.
jumpnett
Istnieje również plik systemowy w / etc. Działa to, ale dotyczy jednego użytkownika.
wheredidthatnamecomefrom
26

Zmienne środowiskowe powinny już działać

Jeśli używasz pakietu tomcat6 z repozytoriów Ubuntu, CATALINA_HOME i inne zmienne środowiskowe są już ustawione w /etc/init.d/tomcat6skrypcie startowym.

Jeśli instalujesz tomcat poza menedżerem pakietów (mam nadzieję, że w / opt lub gdzie indziej poza zarządzanym systemem plików), wówczas uruchomienie TOMCAT/bin/startup.shpowinno użyć względnej lokalizacji do zdefiniowania CATALINA_HOME.

Ustawianie zmiennej środowiskowej

Jeśli z jakiegoś powodu nadal musisz ustawić zmienną środowiskową, możesz otworzyć okno terminala i wpisać polecenie:

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

Ta zmienna środowiskowa będzie teraz działać w tym oknie terminala, ale jeśli otworzysz inne okno lub wylogujesz się / zalogujesz, utracisz to ustawienie.

Ustaw zmienną środowiskową na stałe

Aby ustawienie zmiennej środowiskowej było trwałe, istnieje kilka miejsc, w których można zdefiniować ustawienie.

Aby być naprawdę pewnym, że ustawienie jest pobierane, dodaj powyższe ustawienie do jednego ze skryptów startowych dla tomcat:

yourtomcatfolder/bin/startup.sh

yourtomcatfolder/bin/catalina.sh

Uwaga: startup.sh wywołuje catalina.sh. Należy dodać ustawienie na początku jednego z tych plików (po początkowych komentarzach)

Standardowym sposobem dla globalnych zmiennych środowiskowych byłoby dodanie wpisu /etc/environment(nie używasz polecenia export w tym pliku, ponieważ nie jest to zwykły skrypt bash)

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

Niepolecane

Możesz ustawić zmienne środowiskowe w plikach konfiguracyjnych bash (powłoka wiersza poleceń), ale nie są one zalecane, ponieważ nie zawsze są one pobierane (np. Jeśli używasz serwera, do którego nie logujesz się, aby uruchomić tomcat): ~ / .bashrc | ~ / .profile | /etc.bash.bashrc | / etc / profile

jr0cket
źródło
5
Nie powinien to być skrypt startuplub catalina, ale skrypt setenv.shlub setenv.bat, w razie potrzeby, tworzący go: „Oprócz CATALINA_HOME i CATALINA_BASE wszystkie zmienne środowiskowe można określić w skrypcie„ setenv ”. Skrypt jest umieszczony w CATALINA_BASE / bin lub w CATALINA_HOME / bin i nazywa się setenv.bat (w systemie Windows) lub setenv.sh (w * nix). Plik musi być czytelny. " ( Uruchamianie kontenera Aplet Tomcat 7.0 Servlet / JSP , Rozdział 3.4)
Olathe
22

Aby ustawić stałe zmienne środowiskowe w najnowszych wersjach Ubuntu (od 14.04 i nowszych) dodaj zmienne do /etc/environment. W tym celu postępuj zgodnie z poniższymi instrukcjami,

Otwórz terminal i uruchom

sudo -H gedit /etc/environment

podaj hasło, a następnie w monitowanym pliku tekstowym

następnie dodaj zmienne takie jak

ANT_HOME="/opt/ANT/"

Próbka /etc/environmentjest podana poniżej

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/"

nie zapomnij wylogować się i zalogować ponownie, aby włączyć zmienne środowiskowe.

Kasun Siyambalapitiya
źródło
6

Najlepsze miejsce na to zależy od tego, jak i gdzie zainstalowałeś Tomcat, jakie aplikacje chcesz wybrać to ustawienie i jak globalny ma być zakres.

Dokumentacja Ubuntu na temat zmiennych środowiskowych omawia zalety i wady różnych opcji.

McDowell
źródło
O czym mówisz, mówiąc „najlepsze miejsce na to”?
jumpnett
@ jumpnett - Mam na myśli, gdzie ustawienie ma być trwałe, aby zawsze było dostępne dla aplikacji w zależności od niego. Chyba że z przyjemnością wpisujesz ustawienia za każdym razem lub chcesz napisać własny skrypt.
McDowell,
3
nano ~/.bashrc

Najprawdopodobniej będzie już zawierać sporo danych. Większość definicji tutaj służy do ustawiania opcji bash, które nie są powiązane ze zmiennymi środowiskowymi. Możesz ustawić zmienne środowiskowe tak samo jak w wierszu poleceń:

export VARNAME=value

POŁĄCZYĆ

Przetestowałem to na Ubuntu 16.04. Działa świetnie.

Sunny127
źródło
1

Po przejrzeniu dokumentacji Ubuntu na temat zmiennych środowiskowych wymyśliłem następujące obejście:

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

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

Ostatni wiersz tworzy powłokę potomną, która dziedziczy wartości zmiennej środowiskowej z powłoki macierzystej (które właśnie zostały ustawione).

Ashish Sadhwani
źródło