Le mie variabili sono
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Come salvare queste variabili in modo permanente?
Le mie variabili sono
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Come salvare queste variabili in modo permanente?
Risposte:
È possibile aggiungerlo al file .profile
o al file del profilo della shell di accesso (situato nella directory principale).
Per modificare la variabile ambientale "in modo permanente" dovrai considerare almeno queste situazioni:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
nell'ordine~/.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
Se si desidera renderlo permanente per tutti gli utenti, è possibile modificare i file corrispondenti in /etc/
, ad esempio /etc/profile
per shell tipo Bourne, /etc/csh.login
per (t) csh e /etc/zsh/zprofile
e /etc/zsh/zshrc
per zsh.
Un'altra opzione è l'uso /etc/environment
, che sui sistemi Linux viene letto dal modulo PAM pam_env
e supporta solo assegnazioni semplici, non espansioni di tipo shell. (Vedi la guida di Debian su questo.)
È probabile che questi file contengano già alcuni compiti, quindi segui la sintassi che vedi già presente nel tuo file.
Assicurarsi di riavviare la shell e accedere nuovamente all'utente per applicare le modifiche.
Se è necessario aggiungere una variabile di ambiente a livello di sistema, ora c'è una /etc/profile.d
cartella che contiene sh script per inizializzare la variabile.
È possibile posizionare qui lo script sh con tutte le variabili esportate.
Fai attenzione, anche se questo non dovrebbe essere usato come un modo standard per aggiungere variabili a env su Debian.
.profile
in /etc/
ma non so come impostare le variabili in questo per .profile
favore dimmi
.profile
non è nella tua home directory/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
è il comando per scrivere il file e uscire in vi non dimenticare di digitare esc
prima
crontab
script. Nessuna di queste posizioni verrà cercata quando uno crontab
script è in esecuzione.
Per fare se per tutti gli utenti / shell, a seconda della distribuzione è possibile utilizzare /etc/environment
o /etc/profile
. La creazione di un nuovo file in /etc/profile.d
potrebbe essere preferibile se esiste, poiché sarà meno probabile che sia in conflitto con gli aggiornamenti effettuati dal sistema di packaging.
In /etc/environment
, le variabili sono generalmente impostate con name=value
, ad esempio:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
In /etc/profile
, è necessario utilizzare export
poiché si tratta di uno script, ad esempio:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Lo stesso vale per un file sotto /etc/profile.d
, potrebbero esserci anche delle restrizioni di denominazione che devono essere soddisfatte affinché il file funzioni. Su Debian, il file deve avere l'estensione .sh
(anche se non ha bisogno di una bang line o permessi eseguibili poiché è di provenienza). controlla la tua documentazione sulla distribuzione o guarda lo /etc/profile
script per vedere come vengono caricati questi file.
Si noti inoltre che l'impostazione in modo LD_LIBRARY_PATH
permanente è potenzialmente problematica , incluso il rischio per la sicurezza. In alternativa, suggerirei di trovare un modo per anteporre LD_LIBRARY_PATH
l'inizio della riga di comando per ciascun programma che ne ha bisogno prima di eseguirlo. Per esempio:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Un modo per farlo è utilizzare uno script wrapper per eseguire il programma. Potresti dare a questo lo stesso nome del tuo programma e inserirlo /usr/local/bin
o dovunque appaia prima della posizione del tuo programma PATH
. Ecco uno script di esempio (non dimenticare chmod +x
lo script):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
file, cosa causa il loro caricamento? Ad esempio, dopo essere uscito dall'editor vi (modifiche scritte correttamente), mi aspetto di scriverlo echo $MY_NEW_VARIABLE
e vederlo stampare - EDIT: vedo che sono lì se lancio una nuova shell di comandi
/etc/environment
, anche se ho riavviato il terminale Bash o digitato source /etc/environment
. Quindi, se riscontri problemi in cui la variabile d'ambiente non si perpetua, prova a riavviare.
/etc/environment
non è uno script, quindi non può essere acquistato. Viene caricato al momento dell'accesso (e una manciata di altri eventi di sistema) da PAM, quindi è possibile disconnettersi / accedere o eseguire una nuova sessione di accesso in un terminale $ su <your username here>
per raccogliere i nuovi valori in quella sessione isolata. I valori scompaiono una volta usciti, quindi è probabilmente meno soggetto a errori solo il logout / login completo.
quando installi Oracle, Oracle chiede di eseguire alcuni script prima di fare clic su OK. Lo script ha inserito un'impostazione fittizia nella .bash_profile
home directory dell'utente in oracle. Per vedere il file, ls -al
mostrerà tutti i file nascosti.
digitare nano bash_profile
per aprire il file. Apporta le modifiche al file per riflettere il tuo nome host e il nome sid appropriato. controlla eventuali altre impostazioni che richiedono modifiche. premere control x per salvare e digitare y quando viene chiesto se si desidera salvare. Premere il tasto Invio per salvare. Riavvia il computer. Registrazione come utente Oracle. avviare il database digitando
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
un nuovo file sotto il/etc/ld.so.conf.d/
percorso. Quindi non è necessario impostare LD_LIBRARY_PATH, vedere anche qui .