Какие файлы настройки должны использоваться для установки переменных среды с ударом?

Как я попросил и вложил ответы здесь, и здесь, переменная ПУТИ имеет различные пути в зависимости от того, как приложение активируется.

  • Какие файлы настройки (.bashrc, .profile...) должны использоваться, чтобы иметь ту же переменную ПУТИ, неважно, как я запускаю программное обеспечение с удара?
9
задан 23.05.2017, 15:41

3 ответа

Традиционно, место для определения переменных среды в расчете на пользователя в системах Unix ~/.profile. Этот файл читается оболочкой входа в систему (т.е. программа, которая запущена, когда Вы входите в систему, и что можно ввести команды в), при условии, что оболочка входа в систему является Совместимой с границей оболочкой.

Bash является Совместимой с границей оболочкой. Когда это вызывается, поскольку оболочка входа в систему читает ~/.bash_profile если этот файл существует, и ~/.profile если ~/.bash_profile не существует.

Как показывает опыт, при вводе пароля в текстовом режиме (например, на текстовой консоли, или удаленно с ssh), затем оболочка, которую Вы получаете, является оболочкой входа в систему.

Однако, если Вы вводите свой пароль в графической программе и входитесь графическая среда, это обходит нормальную оболочку входа в систему. Ли .profile читается в этом случае зависит от того, как графическая сессия настраивается; например, это варьируется между дистрибутивами Linux между менеджерами по оформлению и между настольными средами. Иногда одна из программ в цепочке явно вызывает оболочку входа в систему; иногда одна из программ явно читает ~/.profile; и иногда ни одного из этого не происходит и ~/.profile не становится считанным.

Для предоставления примера изменчивости, насколько я могу сказать от быстрого взгляда на включенные сценарии на Ubuntu 10.04: если Вы входите в систему с kdm или lxdm, ~/.bash_profile читается, если это существует, и ~/.profile иначе; если Вы входите в систему с gdm, только ~/.profile читается; если Вы входите в систему с xdm, ~/.profile не читается.

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

Обратите внимание иногда наблюдение рекомендаций любому набору переменные среды в ~/.bashrc, или запустите оболочку входа в систему в каждом терминале в среде GUI. Оба - плохие идеи; одной из причин является проблема, которую Вы испытали, а именно, что Ваши переменные среды были только доступны в программах, запущенных через терминал, а не в программах, запущенных непосредственно со значком или меню или сочетанием клавиш.

15
ответ дан 07.12.2019, 13:14

Категорический ответ находится в разделе страницы справочника удара по Файлам Запуска Bash. "Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, Bash читает и выполняет команды от ~/.bashrc, если тот файл существует".

Отвечает, что Ваши другие вопросы указывают, что eshell на самом деле не работает bash. Emacs eshell не bash. Принятие этого eshell загрузился бы .bashrc является столь же дефектным как принятие zsh или csh загрузился бы .bashrc. Это - другая оболочка.

Я вижу две опции:

  1. Создайте свой собственный сценарий, который берет список каталогов и генерирует соответствующий код удара для bash и elisp кодируют для eshell.
  2. Установите свой ESHELL или переменную Среды оболочки так, чтобы Вы на самом деле выполнили удар в emacs. Это - то, что я делаю. Bash хорошо работает в emacs.

Вы могли бы также интересоваться обсуждением добавления каталога к пути без дубликатов.

2
ответ дан 07.12.2019, 13:14

При устанавливании ПУТИ в ~ должен просто работать/.profile. Тот файл читается после входа в систему каждой совместимой POSIX или подобной Границе оболочкой, которую я знаю включения удара. При внесении изменений в тот файл необходимо будет выйти из системы и войти в для изменений для вступления в силу. Так как ПУТЬ является частью Вашей среды процесса входа в систему, это должно быть экспортировано в каждую оболочку, которую Вы запускаете впоследствии.

1
ответ дан 07.12.2019, 13:14

Теги

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