змінні середовища

змінні середовища

Що це таке?

Змінна середовища - це іменований об'єкт, який містить інформацію, використовувану одним або декількома додатками. Багато користувачів (особливо новачки в Linux) знаходять цей підхід дещо дивним або некерованим. Але це враження помилкове: використовуючи змінні середовища, можна дуже легко змінити налаштування різноманітних програм.

важливі приклади

У наступній таблиці описується ряд змінних, що використовуються в системі Linux. Приклади їх значень наведені далі.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких система шукає виконувані файли. Якщо ви вводите ім'я виконуваного файлу наприклад ls. rc-update або emerge), що не перебуває ні в одній з перерахованих тут каталогів, цей файл не запуститься (якщо, звичайно, ви не вказали повний шлях, наприклад / bin / ls).

У цієї змінної таке ж значення, що і у PATH. але в ній перераховуються тільки ті каталоги, які потрібно переглядати при введенні команди користувачем з правами root.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких динамічний компонувальник шукає бібліотеки.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких команда man шукає сторінки довідки.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких команда info шукає info-сторінки.

У цієї змінної міститься шлях до програми, що дозволяє посторінково переглядати вміст файлів, наприклад less або more.

У цієї змінної міститься шлях до програми, використовуваної для зміни файлів, наприклад vi або nano.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких знаходяться ресурси KDE.

У цієї змінної міститься список каталогів, розділених двокрапкою, в яких знаходяться класи Java.

У цієї змінної міститься список каталогів, що захищаються Portage при оновленні, розділених пробілами.

У цієї змінної міститься список каталогів, що виключаються з захисту Portage при оновленні, розділених пробілами.

Нижче представлений приклад визначення всіх цих змінних:

Глобальне визначення змінних

Каталог /etc/env.d

Для того, щоб визначити ці змінні централізовано, в Calculate існує каталог /etc/env.d. У ньому знаходиться ряд файлів, наприклад, 00basic. 05gcc і так далі, в яких визначаються змінні, необхідні програмами, зазначеним в назві файлів.

Наприклад, при установці gcc ebuild створює файл /etc/env.d/05gcc. містить такі визначення змінних:

В інших дистрибутивах вам пропонується змінювати або додавати визначення змінних середовища в / etc / profile або де-небудь ще. Calculate, з іншого боку, полегшує вам підтримку і управління змінними середовища, позбавляючи від необхідності приділяти увагу численних файлів, що містять визначення змінних.

Наприклад, коли оновлюється gcc. також без найменшої участі користувача оновлюється і /etc/env.d/05gcc.

Від цього виграє не тільки Portage, але і ви, користувач. Іноді від вас може знадобитися глобальна установка який-небудь змінної. Візьмемо, наприклад, змінну http_proxy. Замість того, щоб возитися с / etc / profile. тепер можна просто створити файл (/etc/env.d/99local) і додати потрібні визначення туди:

Використовуючи один і той же файл для всіх своїх змінних, ви можете швидко побачити всі визначені вами змінні разом.

Сценарій env-update

Мінлива PATH визначається в декількох файлах в /etc/env.d. Ні, ні це не помилка: при запуску env-update різні визначення об'єднуються перед оновленням змінних середовища, дозволяючи пакетам (або користувачам) додавати власні значення змінних, не впливаючи на вже існуючі.

Сценарій env-update об'єднує значення змінних з файлів, що знаходяться в /etc/env.d. в алфавітному порядку. Імена файлів повинні починатися з двох десяткових цифр. Порядок поновлення, використовуваний env-update:

Об'єднання виконується не завжди, а тільки для наступних змінних: KDEDIRS. PATH. CLASSPATH. LDPATH. MANPATH. INFODIR. INFOPATH. ROOTPATH. CONFIG_PROTECT. CONFIG_PROTECT_MASK. PRELINK_PATH і PRELINK_PATH_MASK. Для всіх інших змінних використовується значення, визначене в останньому з файлів (за алфавітом в каталозі /etc/env.d).

При запуску сценарію env-update створюються всі змінні середовища, і поміщаються в /etc/profile.env (використовуваний файлом / etc / profile). Крім того, на основі значення LDPATH створюється /etc/ld.so.conf. Після цього запускається ldconfig. щоб знову створити файлу /etc/ld.so.cache. використовуваний динамічним компоновщиком.

Якщо ви хочете, щоб результати роботи env-update вступили в силу негайно, для поновлення середовища виконайте наступну команду:

Примітка: Ця команда оновлює змінні тільки в поточному терміналі, в нових консолях і їхніх нащадків. Тобто, якщо ви працюєте в X11, потрібно або набирати source / etc / profile в кожному відкривається терміналі, або перезапустити X, щоб все нові термінали зверталися до нових змінних. Якщо ви використовуєте диспетчер входу в систему, станьте користувачем з правами root і наберіть /etc/init.d/xdm restart. Якщо немає, вам доведеться вийти і знову ввійти в систему, щоб X породжувала нащадків, які використовують нові значення змінних.

Локальне визначення змінних

змінні

Далеко не завжди потрібно визначати змінні глобально. Наприклад, вам може знадобитися додати / home / my_user / bin і поточний робочий каталог (де ви знаходитесь) до змінної PATH. але при цьому не потрібно, щоб це додавання з'явилося і в змінної PATH у всіх інших користувачів. Якщо ви хочете визначити змінну середовища локально, використовуйте

/.bash_profile. Приклад розширення PATH в

/.bashrc для локальних потреб:

Оновлення вашої змінної PATH відбудеться, коли ви вийдете і знову ввійдете в систему.

сеансові змінні

Іноді потрібні ще більш жорсткі обмеження. Вам може знадобитися можливість запуску виконуваних файлів з спеціально створеного тимчасового каталогу без вказівки повного шляху до них, і без зміни файлу

/.bashrc заради кількох хвилин.

В цьому випадку можна просто визначити змінну PATH для поточного сеансу командою export. Змінної буде присвоєно тимчасове значення до тих пір, поки ви не завершите сеанс. Приклад визначення сеансовое змінної середовища:

Схожі статті