Поэтому, когда я вызываю emacs из терминала, все мои переменные окружения корректно загружаются из .bashrc. Однако, когда я загружаю emacs из меню приложения Ubuntu (вызывая /usr/share/applications/emacs24.desktop), он не загружает переменные среды. Могу ли я настроить параметры рабочего стола для этого?
.bashrc
- это не то место, где можно определять переменные среды, как вы обнаружили. Этот файл читается только при запуске интерактивной оболочки (в частности, только при запуске интерактивного экземпляра bash, а не других оболочек). Затем среда наследуется процессами, запущенными из этой оболочки (каждый процесс имеет свою собственную среду, унаследованную от родительского процесса). Поэтому, если вы запускаете программу непосредственно из графического интерфейса, у нее никогда не было возможности увидеть эти переменные среды.
Определите переменные среды в ~/.profile
или в ~/.pam_environment
. Оба файла читаются при входе в систему.
Для получения дополнительной информации см. Альтернатива .bashrc и . Какой лучший дистрибутив / независимый от оболочки способ установки переменных среды?