Moje zmienne to
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Jak zapisać te zmienne na stałe?
Moje zmienne to
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Jak zapisać te zmienne na stałe?
Odpowiedzi:
Możesz dodać go do pliku .profile
lub pliku profilu powłoki logowania (znajdującego się w katalogu domowym).
Aby zmienić zmienną środowiskową „na stałe”, musisz wziąć pod uwagę przynajmniej następujące sytuacje:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
w kolejności~/.bashrc
$BASH_ENV
$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.zprofile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH ORACLE_HOME
$EDITOR ~/.login
#add lines at the bottom of the file:
setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
setenv ORACLE_HOME /usr/lib/oracle/11.2/client64
Jeśli chcesz, aby był stały dla wszystkich użytkowników, możesz edytować odpowiednie pliki pod /etc/
, tj. /etc/profile
Dla powłok podobnych do Bourne'a, /etc/csh.login
dla (t) csh /etc/zsh/zprofile
i /etc/zsh/zshrc
dla zsh.
Inną opcją jest użycie /etc/environment
, które w systemach Linux jest odczytywane przez moduł PAM pam_env
i obsługuje tylko proste przypisania, a nie rozszerzenia w stylu powłoki. (Zobacz Przewodnik Debiana na ten temat.)
Te pliki prawdopodobnie zawierają już niektóre przypisania, więc postępuj zgodnie ze składnią, którą już widzisz w swoim pliku.
Należy zrestartować powłokę i ponownie zalogować użytkownika, aby zastosować zmiany.
Jeśli chcesz dodać ogólnosystemową zmienną środowiskową, jest teraz /etc/profile.d
folder zawierający skrypt sh do inicjalizacji zmiennej.
Tutaj możesz umieścić swój skrypt sh ze wszystkimi eksportowanymi zmiennymi.
Uważaj jednak, nie należy tego używać jako standardowego sposobu dodawania zmiennej do env w Debianie.
.profile
w, /etc/
ale nie wiem jak ustawić zmienne w tym .profile
proszę powiedzieć
.profile
nie znajduje się w twoim katalogu domowym/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
to polecenie zapisu pliku i wyjścia z vi, nie zapomnij wpisać esc
wcześniej
crontab
skryptach. Żadna z tych lokalizacji nie będzie sprawdzana podczas działania crontab
skryptu.
Aby zrobić, jeśli dla wszystkich użytkowników / powłok, w zależności od dystrybucji, której możesz użyć /etc/environment
lub /etc/profile
. Utworzenie nowego pliku /etc/profile.d
może być preferowane, jeśli istnieje, ponieważ rzadziej będzie powodować konflikt z aktualizacjami wprowadzonymi przez system pakowania.
W /etc/environment
, zmienne są zwykle ustawiane za pomocą name=value
, np .:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
W /etc/profile
musisz użyć, export
ponieważ jest to skrypt, np .:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
To samo dotyczy pliku poniżej /etc/profile.d
, mogą również obowiązywać ograniczenia nazewnictwa, które muszą być spełnione, aby plik działał. W systemie Debian plik musi mieć rozszerzenie .sh
(chociaż nie wymaga linii bang ani uprawnień wykonywalnych, ponieważ jest pozyskiwany). sprawdź dokumentację dystrybucji lub spójrz na /etc/profile
skrypt, aby zobaczyć, jak te pliki są ładowane.
Należy również pamiętać, że ustawienie na LD_LIBRARY_PATH
stałe jest potencjalnie problematyczne , w tym może stanowić zagrożenie bezpieczeństwa. Alternatywnie proponuję znaleźć sposób, aby przed LD_LIBRARY_PATH
uruchomieniem uruchomić program na początku wiersza poleceń dla każdego programu, który go potrzebuje. Na przykład:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Jednym ze sposobów na to jest użycie skryptu opakowania do uruchomienia programu. Możesz nadać temu samemu nazwę jak twój program i umieścić go w /usr/local/bin
dowolnym miejscu, które pojawia się przed lokalizacją twojego programu PATH
. Oto przykładowy skrypt (nie zapomnij o chmod +x
skrypcie):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
pliku, co powoduje ich ładowanie? Na przykład po wyjściu z edytora vi (zmiany zostały zapisane pomyślnie) echo $MY_NEW_VARIABLE
/etc/environment
, nawet jeśli ponownie uruchomiłem terminal bash lub wpisałem source /etc/environment
. Więc jeśli masz problemy, w których zmienna środowiskowa nie utrwala się, spróbuj ponownie uruchomić komputer.
/etc/environment
nie jest skryptem, więc nie można go uzyskać. Jest ładowany w czasie logowania (i kilku innych zdarzeń systemowych) przez PAM, więc możesz się wylogować / zalogować lub uruchomić nową sesję logowania w terminalu, $ su <your username here>
aby pobrać nowe wartości w tej odizolowanej sesji. Wartości znikną po wyjściu, więc prawdopodobnie mniej podatne jest na pełne wylogowanie / zalogowanie.
podczas instalacji Oracle, Oracle poprosił o uruchomienie niektórych skryptów przed kliknięciem OK. Ten skrypt umieścił fikcyjne ustawienie w katalogu .bash_profile
osobistym użytkownika w oracle. Aby zobaczyć plik, ls -al
pokaże wszystkie ukryte pliki.
wpisz, nano bash_profile
aby otworzyć plik. Wprowadź zmiany w pliku, aby odzwierciedlić nazwę hosta i odpowiednią nazwę sid. sprawdź wszelkie inne ustawienia, które wymagają modyfikacji. naciśnij control x, aby zapisać i wpisz y, gdy pojawi się pytanie, czy chcesz zapisać. Naciśnij klawisz powrotu, aby zapisać. Zrestartuj komputer. Logowanie jako użytkownik Oracle. uruchom bazę danych, wpisując
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
nowego pliku pod/etc/ld.so.conf.d/
ścieżką. Zatem nie musisz ustawiać LD_LIBRARY_PATH, patrz również tutaj .