Решения тех проблем, с которым мне приходилось сталкиваться.

вторник, 1 мая 2007 г.

переменные окружения

Почти в любой подстраиваемой под себя системе возникает необходимость определить новые переменные окружения или изменить существующие. Возникает вопрос: в какое место нужно прописать нужные строчки, чтобы после перезагрузки воссоздавалась "правильная" среда?

Существует несколько мест, в зависимости от того, является ли переменная общей для всех пользователей и используется ли на машине GUI вход в систему (xdm, gdm, kdm).


  1. Файл /etc/environment - общие переменные среды для всех пользователей. Читается системой стартовых скриптов, поэтому переменные видны всегда и для всех. Однако, важно отметить, что данный файл не является куском bash-скрипта, поэтому определить переменную через значения других не получится;


  2. "Профиль" интерпретатора команда. Для linux это обычно bash и соответственно ~/.bash_profile. Тут можно определить переменные специфичные для пользователя, но выполнен этот файл будет при запуске интерпретатора с ключом -l, а это обычно происходит, когда bash запускается процессом login. Другими словами, при локальном входе в систему через X данный файл прочитан не будет. Равно как не будет прочитан и при последующем запуске bash уже из "иксов";


  3. Стартовые скрипты среды окружения пользователя. Пока остановимся на GNOME, являющейся "родной" средой в ubuntu. Тут все просто: есть файлик ~/.gnomerc, исполняемый при входе в систему;


  4. Общие переменные можно также прописать в общем профиле интерпретатора команд. Для bourne-шеллов это etc/profile. Опять же, файл будет обработан только при входе в систему через процесс login.


Комментариев нет: