Как постоянно устанавливать переменные среды

Мои переменные

  LD_LIBRARY_PATH = /USR /Библиотека /Oracle /11.2 /client64 /Библиотека
ORACLE_HOME = /USR /Библиотека /Oracle /11.2 /client64
 

Как сохранить эти переменные навсегда?

193 голоса | спросил user3021349 28 FebruaryEurope/MoscowbFri, 28 Feb 2014 17:36:05 +0400000000pmFri, 28 Feb 2014 17:36:05 +040014 2014, 17:36:05

3 ответа


216

Вы можете добавить его в файл .profile или файл профиля оболочки входа в систему (расположенный в вашем домашнем каталоге).

Чтобы изменить переменную окружения «постоянно», вам необходимо рассмотреть хотя бы следующие ситуации:

  1. Локальная /недействительная оболочка
  2. Интерактивная /неинтерактивная оболочка

баш

  1. Bash в качестве оболочки входа загрузит /etc /profile , ~ /.bash_profile , ~ /.bash_login , ~ /.profile в порядке
  2. Bash как интерактивная оболочка без входа загрузит ~ /.bashrc
  3. Bash как не-интерактивная неинтерактивная оболочка загрузит конфигурацию, указанную в переменной среды $ BASH_ENV
  $ EDITOR ~ /.profile
#add в нижней части файла:
     export LD_LIBRARY_PATH = /usr /lib /oracle /11.2 /client64 /lib
     export ORACLE_HOME = /usr /lib /oracle /11.2 /client64
 

ЗШ

  $ EDITOR ~ /.zprofile
#add в нижней части файла:
     export LD_LIBRARY_PATH = /usr /lib /oracle /11.2 /client64 /lib
     export ORACLE_HOME = /usr /lib /oracle /11.2 /client64
 

КШ

  $ EDITOR ~ /.profile
#add в нижней части файла:
     export LD_LIBRARY_PATH = /usr /lib /oracle /11.2 /client64 /lib
     export ORACLE_HOME = /usr /lib /oracle /11.2 /client64
 

Борн

  $ EDITOR ~ /.profile
#add в нижней части файла:
     LD_LIBRARY_PATH = /USR /Библиотека /Oracle /11.2 /client64 /Библиотека
     ORACLE_HOME = /USR /Библиотека /Oracle /11.2 /client64
     экспортировать LD_LIBRARY_PATH ORACLE_HOME
 

csh или tcsh

  $ EDITOR ~ /.login
#add в нижней части файла:
     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 об этом.)

Эти файлы, вероятно, уже содержат некоторые назначения, поэтому следуйте синтаксису, который вы видите уже в вашем файле.

Обязательно перезапустите оболочку и переустановите пользователя, чтобы применить изменения.

ответил Hugo 5 PM00000010000005431 2016, 13:49:54
64

Чтобы сделать, если для всех пользователей /оболочек, в зависимости от дистрибутива, вы можете использовать /etc /environment или /etc /profile . Создание нового файла в /etc/profile.d может быть предпочтительным, если оно существует, поскольку оно будет менее подвержено конфликтам с обновлениями, производимыми системой упаковки.

В /etc /environment переменные обычно устанавливаются с помощью name = value , например:

  ORACLE_HOME = /USR /Библиотека /Oracle /11.2 /client64
 

В /etc /profile вы должны использовать export , так как это скрипт, например:

  export ORACLE_HOME = /usr /lib /oracle /11.2 /client64
 

То же самое относится к файлу в /etc/profile.d , также могут быть ограничения именования, которые должны выполняться для работы файла. В Debian файл должен иметь расширение .sh (хотя ему не нужна строка привязки или исполняемые разрешения, так как она получена). проверьте документацию на дистрибутив или посмотрите сценарий /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 /ш
LD_LIBRARY_PATH = /usr /lib /oracle /11.2 /client64 /lib /real /location /of /myprog "$ @"
 
ответил Graeme 28 FebruaryEurope/MoscowbFri, 28 Feb 2014 18:04:08 +0400000000pmFri, 28 Feb 2014 18:04:08 +040014 2014, 18:04:08
1

, когда вы устанавливаете oracle, oracle попросил запустить некоторые скрипты, прежде чем нажать ok. Этот скрипт помещает фиктивный параметр в .bash_profile в домашний каталог пользователя oracle. Чтобы просмотреть файл, ls -al отобразит все скрытые файлы.

введите nano bash_profile , чтобы открыть файл. Внесите изменения в файл, чтобы отобразить ваше имя хоста, и соответствующее имя sid. проверьте любые другие параметры, которые необходимо изменить. нажмите x для сохранения и введите y, если вас спросят, хотите ли вы сохранить. Нажмите клавишу возврата для сохранения. Перезагрузите компьютер. Регистрация в качестве пользователя оракула. запустите базу данных, набрав

  sqlplus /as sysdba

запускать
 
ответил frankfurt 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2015 15:39:31 +0300 2015, 15:39:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132