Мої змінні є
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
для оболонок, подібних до Борна, /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
(хоча воно не потребує лінії вибуху або дозволу на виконання, оскільки він отриманий). перегляньте свою документацію на дистрибутив або подивіться /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
і побачу, як він роздруковується - EDIT: я бачу, що вони є там, якщо я запускаю нову командну оболонку
/etc/environment
, навіть якщо я перезапустив термінал bash або набрав source /etc/environment
. Тож якщо у вас виникають проблеми, коли змінна середовища не продовжується, спробуйте перезавантажити.
/etc/environment
не є сценарієм, тому його неможливо отримати. Він завантажується під час входу (та кількома іншими системними подіями) PAM, тому ви можете або вийти / увійти, або запустити новий сеанс входу в терміналі, $ su <your username here>
щоб отримати нові значення в цьому ізольованому сеансі. Значення зникають, коли ви виходите, тому, ймовірно, менш схильні до помилок просто повністю вийти з системи / увійти.
коли ви встановлюєте oracle, oracle попросив запустити деякі сценарії, перш ніж натиснути кнопку ОК. Цей сценарій помістив фіктивну настройку в .bash_profile
домашній каталог користувача в oracle. Щоб побачити файл, ls -al
покажуть всі приховані файли.
введіть, nano bash_profile
щоб відкрити файл. Внесіть зміни у файл, щоб відображати ім'я хоста та відповідне ім'я sid. перевірити будь-які інші налаштування, які потребують змін. натисніть клавішу управління x, щоб зберегти і введіть y, коли вас запитають, чи потрібно зберегти. Натисніть клавішу повернення для збереження. Перезавантажте комп'ютер. Реєстрація як користувач Oracle. запустити базу даних, набравши текст
sqlplus / as sysdba
startup
/usr/lib/oracle/11.2/client64/lib
в новий файл під/etc/ld.so.conf.d/
шлях. Тоді вам не потрібно встановлювати LD_LIBRARY_PATH, дивіться також тут .