Вопрос или проблема
Кажется, в gnome 3.22 изменен способ получения $PATH. В предыдущих версиях, по-моему, учитывались либо .bashrc
, либо .bash_profile
. Теперь они больше не учитываются. Я также попробовал ~/.profile
, но безрезультатно.
Чтобы протестировать это, я запускал alt-f2, вводил имя команды и нажимал enter. Теперь это не работает на gnome 3.22, если исполняемый файл не находится в папках в обычном $PATH
системы (/usr/bin
и так далее). Это вызвало проблему с отображением приложения в меню, так как его исполняемый файл не был найден. Изменение на абсолютный путь в файле рабочего стола решило проблему, но я бы хотел сообщить gnome-shell о папке и вводить только имя исполняемого файла; я бы предпочел не копировать приложение в общесистемные папки, такие как /usr/bin
.
Я выяснил, что эта проблема рассматривается на https://unix.stackexchange.com/questions/317282/set-environment-variables-for-gnome-on-wayland-and-bash-on-virtual-terminals-or, а также на https://bugzilla.gnome.org/show_bug.cgi?id=736660 и https://bugzilla.redhat.com/show_bug.cgi?id=1149905
К сожалению, ни одна из ссылок пока не дает удовлетворительного решения. Я обновлю информацию, если найду хорошее решение.
Ответ или решение
Вопрос касательно изменения переменной окружения PATH в среде GNOME 3.22 достаточно интересен и требует детального рассмотрения. В контексте последних изменений GNOME 3.22, традиционные файлы конфигурации оболочки, такие как .bashrc
, .bash_profile
и .profile
, больше не учитываются для настройки переменной PATH в том же объеме, что и ранее. Это связано с обновленной архитектурой и механикой работы системы, включая поддержку Wayland.
Следовательно, изменения, которые вы хотите внести для расширения PATH и упрощения запуска приложений из командной строки или ALT+F2, требуют немного другого подхода. На данный момент существует несколько решений, которые могут быть полезны:
-
Настройка через файл
.xprofile
или.xsessionrc
: Если вы используете X11 вместо Wayland, хорошим решением может стать добавление вашего пользовательского пути PATH в файлы.xprofile
или.xsessionrc
, которые выполняются при входе в систему. Например:export PATH=$PATH:/путь/к/дополнительным/папкам
-
Настройка через GDM:
- Если вы используете дисплейный менеджер GDM, вы можете добавить кастомные параметры среды в файл
/etc/environment
. Это делается для того, чтобы установка PATH применялась ко всем сессиям:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/путь/к/дополнительным/папкам"
- Если вы используете дисплейный менеджер GDM, вы можете добавить кастомные параметры среды в файл
-
Использование
gnome-session-properties
:- Вы можете создавать пользовательские задачи, которые устанавливают нужный PATH при запуске GNOME. Создайте скрипт, который устанавливает переменные окружения, и добавьте его в автозагрузку с помощью
gnome-session-properties
.
- Вы можете создавать пользовательские задачи, которые устанавливают нужный PATH при запуске GNOME. Создайте скрипт, который устанавливает переменные окружения, и добавьте его в автозагрузку с помощью
-
Проверка на совместимость с Wayland:
- Если вы используете Wayland, убедитесь, что изменения в PATH применимы через системные конфигурации, так как не все традиционные методы работают.
Важно учесть, что использование абсолютных путей в .desktop
файлах по-прежнему является наиболее надежным способом для гарантии работоспособности приложений в меню GNOME, особенно, если PATH настраивается для всей системы некорректно.
Обобщая вышесказанное, внесение изменений в PATH в среде GNOME 3.22 требует учета используемого дисплейного сервера и возможного использования альтернативных путей конфигурации, как, например, указано выше. Это не только поможет сохранить персонализацию пользовательских настроек, но и повысит удобство управления системой.
Если вы хотите узнать больше о настройке PATH в GNOME 3.22, возможно, стоит также привлечь внимание к обсуждениям и обновлениям со стороны пользователей в соответствующих сообществах и на форумах. Надеюсь, это поможет вам достичь желаемой функциональности без излишнего копирования исполняемых файлов в системные каталоги.