Мои переменные
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Как сохранить эти переменные навсегда?
Мои переменные
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Как сохранить эти переменные навсегда?
Ответы:
Вы можете добавить его в файл .profile
или файл профиля вашей оболочки входа (расположенный в вашем домашнем каталоге).
Чтобы изменить переменную среды «навсегда», вам необходимо рассмотреть как минимум следующие ситуации:
/etc/profile
, ~/.bash_profile
, ~/.bash_login
, ~/.profile
в порядке~/.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
Если вы хотите сделать его постоянным для всех пользователей, вы можете отредактировать соответствующие файлы /etc/
, например, /etc/profile
для Bourne-подобных оболочек, /etc/csh.login
для (t) csh и /etc/zsh/zprofile
и /etc/zsh/zshrc
для zsh.
Другим вариантом является использование /etc/environment
, которое в системах Linux читается модулем PAM pam_env
и поддерживает только простые назначения, а не расширения в стиле оболочки. (См . Руководство Debian по этому вопросу.)
Эти файлы, вероятно, уже содержат некоторые назначения, поэтому следуйте синтаксису, который вы уже видите в вашем файле.
Обязательно перезапустите оболочку и перезапустите пользователя, чтобы применить изменения.
Если вам нужно добавить общесистемную переменную среды, теперь есть /etc/profile.d
папка, содержащая скрипт sh для инициализации переменной.
Вы можете разместить свой скрипт sh со всеми экспортируемыми вами переменными здесь.
Будьте осторожны, хотя это не должно использоваться в качестве стандартного способа добавления переменной в env в Debian.
.profile
в /etc/
но я не как установить переменные в этом .profile
скажите , пожалуйста
.profile
находится в вашем домашнем каталоге нет/etc/
[Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$
:wq
это команда для записи файла и выхода из vi, не забудьте набрать esc
раньше
crontab
скриптах. Ни одно из этих мест не будет найдено при crontab
запуске скрипта.
Делать, если для всех пользователей / оболочек, в зависимости от дистрибутива вы можете использовать /etc/environment
или /etc/profile
. Создание нового файла в /etc/profile.d
может быть предпочтительнее, если он существует, так как с меньшей вероятностью будет конфликтовать с обновлениями, сделанными системой упаковки.
В /etc/environment
переменные обычно устанавливаются с помощью name=value
, например:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
В /etc/profile
, вы должны использовать, export
так как это скрипт, например:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
То же самое относится и к файлу /etc/profile.d
, но также могут быть ограничения именования, которые должны быть соблюдены, чтобы файл работал. В Debian файл должен иметь расширение .sh
(хотя он не нуждается в строчке bang или правах на исполняемый файл, поскольку он получен). проверьте документацию к дистрибутиву или посмотрите /etc/profile
скрипт, чтобы увидеть, как эти файлы загружаются.
Обратите внимание также на то, что установка на LD_LIBRARY_PATH
постоянной основе потенциально проблематична , включая угрозу безопасности. В качестве альтернативы, я бы предложил найти какой-нибудь способ добавить LD_LIBRARY_PATH
к началу командной строки перед каждой программой, которая в ней нуждается, перед запуском. Например:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Один из способов сделать это - использовать скрипт-обертку для запуска программы. Вы можете присвоить это имя тому же имени, что и ваша программа, и вставить его в /usr/local/bin
любое место, где оно находится перед местоположением вашей программы PATH
. Вот пример сценария (не забудьте chmod +x
сценарий):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
environment
файл, что заставляет их загружаться? Например, после выхода из редактора vi (изменения записаны успешно), я ожидаю написать echo $MY_NEW_VARIABLE
и посмотреть, как он распечатывается - РЕДАКТИРОВАТЬ: я вижу, что они там, если я запустил новую командную оболочку
/etc/environment
, даже если я перезапустил терминал Bash или набрал source /etc/environment
. Поэтому, если у вас возникают проблемы, когда переменная окружения не сохраняется, попробуйте перезагрузить компьютер.
/etc/environment
это не сценарий, поэтому его нельзя получить. Он загружается во время входа (и нескольких других системных событий) PAM, поэтому вы можете либо выйти из системы, либо войти в систему, либо запустить новый сеанс входа в систему в терминале, $ su <your username here>
чтобы получить новые значения в этом изолированном сеансе. Значения исчезнут после вашего выхода, так что, вероятно, менее подвержен ошибкам просто полный выход из системы / вход в систему.
когда вы устанавливаете oracle, oracle попросил вас запустить несколько скриптов, прежде чем нажимать ok. Этот скрипт поместил фиктивную настройку в .bash_profile
домашнюю директорию пользователя oracle. Чтобы увидеть файл, ls -al
покажет все скрытые файлы.
введите, nano bash_profile
чтобы открыть файл. Внесите изменения в файл, чтобы отразить ваше имя хоста и соответствующее имя sid. проверьте любые другие настройки, которые необходимо изменить. нажмите control x для сохранения и введите y, когда вас спросят, хотите ли вы сохранить. Нажмите клавишу возврата, чтобы сохранить. Перезагрузите компьютер. Регистрация как пользователь оракула. запустить базу данных, набрав
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
новый файл под/etc/ld.so.conf.d/
путем. Тогда вам не нужно устанавливать LD_LIBRARY_PATH, см. Также здесь .