Вопрос или проблема
В качестве класса для изучения Unix/Linux я использую приложение Ubuntu от Microsoft на Windows 10. Я хочу запустить:
gedit somefile.txt
Но получаю следующее:
Не удалось подключиться к Mir: Не удалось подключиться к серверному сокету: Нет такого файла или каталога
Не удалось инициализировать сервер: Не удалось подключиться: Соединение отклонено
(gedit:27829): Gtk-WARNING **: невозможно открыть дисплей: :0.0
Ни одно из следующих решений не сработало:
-
В соответствии с этой страницей я пробовал
gksu gedit
и получил только последнюю строку вышеприведенной ошибки, а также пробовалsudo nano
и могу редактировать файл (но это не совсем решение, так как я хочу использовать gedit). -
В соответствии с @WinEunuuchs2Unix’s solution я скачал VcXsrv, добавил
export DISPLAY=localhost:0.0
в ~/.bashrc, установил ubuntu-desktop и yad, но все равно получаю свою исходную ошибку при попытке открыть gedit. -
В соответствии с этой страницей я установил Xming и vim-gtk и попытался использовать
gvim
вместо gedit и получил:E233: не удалось открыть дисплей
-
Я следовал этому руководству от PC World, не встречая проблем, пока не дошел до
dbus-launch --exit-with-session ~/.xsession
, что дает мне:/usr/bin/startxfce4: X сервер уже запущен на дисплее :0.0
xrdb: Соединение отклонено
xrdb: Невозможно открыть дисплей ‘:0.0’
xfce4-session: Невозможно открыть дисплей: .
Введите ‘xfce4-session –help’ для справки.
А теперь я не знаю, что еще попробовать, поэтому буду рад получить помощь! Я также надеюсь, что это хороший вопрос и извиняюсь, если я совершаю типичную ошибку новичка.
Рекомендую xhost +
, что потенциально опасно, так как позволяет любому в мире подключаться к вашей X-сессии, но вы можете запустить это, а затем выполнить вашу команду, после того как программное обеспечение запустится, запустите xhost -
, чтобы снова обеспечить безопасность. Это временное решение 🙂
Приложение Ubuntu использует WSL, который в основном является текстовой системой и не предоставляет полнофункциональную графическую среду рабочего стола. Однако уже довольно давно WSL способен запускать графические приложения в окне. Необходимые шаги по установке и инструкции по использованию можно найти в документации Microsoft.
Если вы ищете полнофункциональный рабочий стол, вам стоит рассмотреть установку Ubuntu в виртуальной машине, например, в Microsoft Hyper-V.
Ответ или решение
Проблема и Решение: Gtk-warning cannot open display в Windows через Ubuntu
Ваша проблема заключается в том, что вы пытаетесь запустить графическое приложение gedit
в среде Windows с использованием WSL (Windows Subsystem for Linux), но сталкиваетесь с ошибкой Gtk-WARNING **: cannot open display: :0.0
. Эта ошибка означает, что ваше приложение пытается подключиться к графическому серверу (X-серверу), но не может этого сделать.
Что такое WSL и его ограничения
Меняющий подход Microsoft с WSL позволяет пользователям запускать Linux приложения в Windows, однако, стоит учитывать, что WSL в первую очередь предназначен для текстовых приложений. В то время как WSL2 поддерживает более широкий функционал и запуск графических приложений, интеграция с GUI-приложениями всё ещё требует дополнительных шагов.
Актуальные Решения
-
Убедитесь, что X-сервер запущен
Для успешного запуска GUI-приложений в WSL необходимо наличие графического X-сервера, такого как VcXsrv или Xming. Убедитесь, что такой сервер установлен и запущен.
-
Настройка переменной DISPLAY
После установки X-сервера, необходимо настроить переменную окружения DISPLAY. В вашем случае, для VcXsrv, правильной установкой будет:
export DISPLAY=localhost:0.0
Добавьте эту строку в ваш файл
~/.bashrc
, чтобы эта настройка применялась при каждой новой сессии Linux. -
Настройка разрешений на доступ к X-серверу
Чтобы разрешить доступ к X-серверу, выполните команду:
xhost +
После запуска
gedit
, вы можете вернуть настройки безопасности с помощью:xhost -
Обратите внимание, что команда
xhost +
потенциально небезопасна, так как она позволяет любому пользователю подключаться к вашему X-серверу. Используйте её умело и только для временных нужд. -
Проверка конфигурации WSL
Убедитесь, что у вас стоит WSL2, так как WSL1 не поддерживает запуск GUI-приложений. Для проверки версии WSL выполните команду:
wsl --list --verbose
Если у вас установлена старая версия WSL, вы можете обновить её с помощью команды:
wsl --set-version <имя_дистрибутива> 2
-
Удаление и переустановка графических библиотек
Возможно, некоторые библиотеки или компоненты могут быть установлены некорректно. Попробуйте переустановить необходимые графические библиотеки:
sudo apt update sudo apt install --reinstall gedit
-
Использование альтернативных текстовых редакторов
Если все вышеописанные шаги не помогли, вы всегда можете использовать текстовые редакторы, работающие через терминал, например,
nano
илиvim
. Несмотря на то что они не имеют графического интерфейса, они предоставляют достаточный функционал для редактирования текстовых файлов.
Заключение
Проблема с подключением к графическому дисплею в WSL может вызвать множество трудностей, однако, следуя описанным шагам, вы сможете решить её. Если у вас возникают дополнительные вопросы или требуется помощь, не стесняйтесь обращаться за поддержкой.
Для получения более подробной информации об использовании графических приложений в WSL, вы можете обратиться к официальной документации Microsoft.