Meine Variablen sind
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Wie speichere ich diese Variablen dauerhaft?
Meine Variablen sind
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Wie speichere ich diese Variablen dauerhaft?
Antworten:
Sie können es der Datei .profile
oder Ihrer Anmelde-Shell-Profildatei (die sich in Ihrem Ausgangsverzeichnis befindet) hinzufügen .
Um die Umgebungsvariable "dauerhaft" zu ändern, müssen Sie mindestens die folgenden Situationen berücksichtigen:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
in der Reihenfolge~/.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
Wenn Sie es für alle Benutzer dauerhaft machen möchten, können Sie die entsprechenden Dateien unter /etc/
, dh /etc/profile
für Bourne-ähnliche Shells, /etc/csh.login
für (t) csh /etc/zsh/zprofile
und /etc/zsh/zshrc
für zsh bearbeiten .
Eine andere Option ist die Verwendung /etc/environment
, die auf Linux-Systemen vom PAM-Modul gelesen wird pam_env
und nur einfache Zuweisungen unterstützt, keine Erweiterungen im Shell-Stil. (Siehe dazu Debians Leitfaden .)
Diese Dateien enthalten wahrscheinlich bereits einige Zuweisungen. Befolgen Sie daher die Syntax, die in Ihrer Datei bereits vorhanden ist.
Stellen Sie sicher, dass Sie die Shell neu starten und den Benutzer erneut anmelden, um die Änderungen zu übernehmen.
Wenn Sie eine systemweite Umgebungsvariable hinzufügen müssen, gibt es jetzt einen /etc/profile.d
Ordner mit einem sh-Skript zum Initialisieren der Variablen.
Sie können Ihr sh-Skript mit allen exportierten Variablen hier platzieren.
Seien Sie vorsichtig, obwohl dies nicht als Standardmethode zum Hinzufügen von Variablen zu env unter Debian verwendet werden sollte.
.profile
in, /etc/
aber ich weiß nicht, wie man die Variablen in diesem setzt, .profile
bitte sagen Sie mir
.profile
ist in Ihrem Heimatverzeichnis nicht/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
ist der Befehl zum Schreiben einer Datei und zum Beenden in vi. Vergiss nicht, esc
vorher zu tippen
crontab
Skripten berücksichtigen . Keiner dieser Speicherorte wird gesucht, wenn ein crontab
Skript ausgeführt wird.
Zu tun, wenn für alle Benutzer / Shells, abhängig von der Distribution, die Sie verwenden könnten /etc/environment
oder /etc/profile
. Das Erstellen einer neuen Datei in ist /etc/profile.d
möglicherweise vorzuziehen, wenn diese vorhanden ist, da es weniger wahrscheinlich ist, dass es zu Konflikten mit Aktualisierungen kommt, die vom Paketsystem vorgenommen werden.
In /etc/environment
werden Variablen normalerweise mit gesetzt name=value
, zB:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
In /etc/profile
müssen Sie verwenden, export
da dies ein Skript ist, zB:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Gleiches gilt für eine Datei unter /etc/profile.d
. Möglicherweise gibt es auch Benennungsbeschränkungen, die erfüllt sein müssen, damit die Datei funktioniert. Unter Debian muss die Datei die Erweiterung haben .sh
(obwohl sie keine Bang-Line oder ausführbare Berechtigungen benötigt, da sie von einer Quelle stammt). Überprüfen Sie Ihre Distributionsdokumentation oder schauen Sie sich das /etc/profile
Skript an, um zu sehen, wie diese Dateien geladen werden.
Beachten Sie auch, dass die LD_LIBRARY_PATH
permanente Einstellung möglicherweise problematisch ist , einschließlich eines Sicherheitsrisikos. Als Alternative würde ich vorschlagen, LD_LIBRARY_PATH
für jedes Programm, das es vor dem Ausführen benötigt , eine Möglichkeit zu finden, das vor dem Beginn der Befehlszeile zu setzen. Z.B:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Eine Möglichkeit, dies zu tun, besteht darin, ein Wrapper-Skript zum Ausführen des Programms zu verwenden. Sie können diesem den gleichen Namen wie Ihrem Programm geben und es in /usr/local/bin
oder an einer beliebigen Stelle einfügen, die vor dem Speicherort Ihres Programms in angezeigt wird PATH
. Hier ist ein Beispielskript (vergiss chmod +x
das Skript nicht):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
Datei hinzugefügt habe , was bewirkt, dass diese geladen werden? Zum Beispiel erwarte ich nach dem Verlassen des vi-Editors (Änderungen wurden erfolgreich geschrieben), dass sie geschrieben echo $MY_NEW_VARIABLE
und
/etc/environment
neu starten, nachdem ich dies eingestellt hatte , selbst wenn ich das Bash-Terminal neu gestartet oder etwas eingegeben hatte source /etc/environment
. Wenn Sie also Probleme haben, bei denen die Umgebungsvariable nicht aufrechterhalten wird, versuchen Sie einen Neustart.
/etc/environment
ist kein Skript, kann also nicht bezogen werden. Es wird zur Anmeldezeit (und einigen anderen Systemereignissen) von PAM geladen, sodass Sie sich entweder abmelden / anmelden oder eine neue Anmeldesitzung in einem Terminal ausführen können, indem Sie $ su <your username here>
die neuen Werte in dieser isolierten Sitzung abrufen. Die Werte werden nach dem Beenden ausgeblendet, sodass es wahrscheinlich weniger fehleranfällig ist, sich nur vollständig abzumelden / anzumelden.
Bei der Installation von Orakel hat Orakel Sie aufgefordert, einige Skripte auszuführen, bevor Sie auf OK klicken. Dieses Skript hat eine Dummy-Einstellung in das .bash_profile
Ausgangsverzeichnis des Oracle-Benutzers eingefügt. Um die Datei anzuzeigen, ls -al
werden alle versteckten Dateien angezeigt.
Geben Sie ein nano bash_profile
, um die Datei zu öffnen. Nehmen Sie Änderungen an der Datei vor, um Ihren Hostnamen und den entsprechenden SID-Namen wiederzugeben. Überprüfen Sie alle anderen Einstellungen, die geändert werden müssen. Drücken Sie zum Speichern die Taste x und geben Sie y ein, wenn Sie gefragt werden, ob Sie speichern möchten. Drücken Sie zum Speichern die Eingabetaste. Starte den Computer neu. Anmelden als Oracle-Benutzer. Starten Sie die Datenbank, indem Sie Folgendes eingeben
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
eine neue Datei unter dem/etc/ld.so.conf.d/
Pfad hinzuzufügen . Dann brauchen Sie LD_LIBRARY_PATH nicht zu setzen, siehe auch hier .