Could not parse arguments не удалось открыть дисплей
После открытия cygwin с X все работает отлично и как и ожидалось, но через несколько часов я не могу открыть ни одну другую программу, которая требует отображения X:
от cygwin
от порожденного гнома-terminal
в остальном все работает нормально
- Установите последнюю версию cygwin со всеми компонентами x11
- запустить ssh -X $@$ -p$
- run gui-command (должен работать)
- подождите 1-2h (может быть, меньше) и попробуйте запустить приложение с графическим интерфейсом
удаленный PC работает ubuntu с openssh
Перезагрузите сервер cygwin X
Я заглянул в официальную документацию и нашел это , но это бесполезно, так как у меня, похоже, не установлено ни одного из этих программ, а описание проблем очень широкое.
Какие еще существуют обходные пути? Есть ли другие в такой же ситуации? Я сделал что-то не так? Есть ли лучшие способы использовать удаленные программы X11 на windows?
1 ответ
Используйте-Y вместо-X. У меня была такая же проблема, и это решило ее.
Похожие вопросы:
Я запускаю ImageMagick на своем Mac, который работает на Yosemite. Я только что скачал ImageMagick и пытаюсь открыть отображение логотипа, запустив его в командной строке: display logo.jpg после.
Я разрабатываю веб-приложение JSF на коробке Windows, используя Emacs в качестве редактора, но я предпочитаю использовать Emacs в среде Linux. В (несколько отдаленном) прошлом было не сложно.
запустив cygwin на windows, я могу подключать и выполнять X-приложения без дальнейших проблем просто доступ к удаленному ящику linux как к пользовательской машине ssh-Y-L. Если я сделаю то же самое.
У меня есть пакет python в Cygwin на Windows 7. Однако, набрав python -V возвращается Python 2.6.8 Это довольно низкая версия Python. Я мог бы использовать Python 3.x (предпочтительно любую самую.
Я пытаюсь открыть новый фрейм emacs, подключившись к существующему демону emacs с помощью приведенной ниже команды, но он не может открыть дисплей. Это и есть команда: emacsclient -c Выход есть: Жду.
У меня возникает ошибка всякий раз, когда я пытаюсь открыть внешний дисплей через sshing на сервер linux. Ошибка возникает в различных контекстах: freeglut (. / executable): не удалось открыть.
Я сканировал другие вопросы с похожими заголовками, но они не работали со мной. Я использую cygwin на windows 7 с его пакетом opencv, используя компилятор clang для c, когда я попробовал простую.
После запуска приложения X11 (XQuartz 2.3.6, xorg-server 1.4.2-apple56) на моем Mac (OS X 10.6.8), открытия терминала в X11 и его запуска xhost + , я перехожу на свою виртуальную машину ssh -Y Ubuntu 10.04 (работающую на VMware). Fusion). Когда я бегу gedit .bashrc (например), я получаю:
set | grep DISPLAY ничего не возвращает
Но если я ssh -Y в мою машину Ubuntu 11.04, gedit .bashrc работает. echo $DISPLAY возвращает "localhost: 10.0".
Я пытался, export DISPLAY=localhost:10.0 пока sshed в мою виртуальную машину, а затем работает gedit .bashrc , но я получаю:
Что может отличаться в конфигурации двух разных машин Ubuntu, что объясняет, почему один работает, а другой нет?
Обновление: как предложено Zoredache в комментарии ниже, я бежал sudo apt-get install xbase-clients , но у меня все еще остается та же проблема.
Есть ли в Ubuntu 10.04 соответствующие инструменты для X11? Установите клиенты xbase, если они еще не установлены. Я установил его, но все еще есть та же проблема. (См. Выше.) @jcrawfordor Вы проверили X11Forwarding на Ubuntu, и что вы xbase-clients установили, и что вы можете запускать Xapps на Mac на терминале , с которого вы устанавливаете ssh-соединение. (Убедитесь , что $DISPLAY установлен на терминале запуска SSH с . В моем случае это был только вопрос обновления версии MacOS дляПроверьте sshd_config сервера (обычно /etc/ssh/sshd_config ) и убедитесь, что опция X11Forwarding включена со строкой
Если X11Forwarding не указан, по умолчанию на компьютерах Debian, которые я могу проверить, по умолчанию нет.
После настройки другой виртуальной машины Ubuntu я обнаружил, что мне нужно установить xbase-клиенты и включить X11Forwarding. Обновите свой ответ, чтобы включить оба, и я приму его. Интересно. По крайней мере, на новой установке 10.04, которую я сделал сегодня утром, X11Forwarding был включен по умолчанию. Ребята из Ubuntu, должно быть, снова возятся с настройками по умолчанию. @DerfK, в моей системе "X11Forwarding yes" уже было там, я все еще получаю ошибку, (gedit: 8381): Gtk-WARNING **: не могу открыть дисплей: в таких случаях В Debian вам, возможно, придется установить пакет xauth, а затем снова войти в систему. Для тех, у кого есть подобные проблемы в OS X, также убедитесь, что у вас установлен XQuartz, иначе ни одно из этих исправлений не поможет. (Вопрос OP показывает, что у него есть XQuartz, так что это больше примечание для тех, у кого были такие же проблемы, как и у меня) Обратите внимание, что работа xhost + очень небезопасна и не должна использоваться! Как упоминал Стефан Рогин, злоумышленник может затем с хоста подключиться к вашей XSession, прочитать все, что вы печатаете, или даже изменить экран, который вы видите.У меня была эта проблема при входе в Ubuntu VM из Mac OS X, а также - по некоторым причинам он не похож на «localhost» в отображаемой переменной. Так что установите IP вручную, как предлагает harrymc:
Тогда программы X11 должны быть в порядке. Не похоже, что нужно указывать ОС, что localhost и 127.0.0.1 эквивалентны, но это работает, по крайней мере.
Это сработало для меня. Есть идеи, почему localhost не работает? БИНГО! Я застрял в этой проблеме в течение некоторого времени . Я подключился по SSH и не смог запустить программы Gtk (обычный X11, как "xeyes", работал, однако). ОТОБРАЖЕНИЕ было правильно. На самом деле, разрешение «localhost» не было! Если я установлю вручную DISPLAY = 127.0.0.1: 10.0 или DISPLAY = :: 1: 10.0, это сработает. Редактирование / etc / hosts, кажется, не имеет никакого эффекта; и DNS правильно настроен (отчет о корреляции «dig localhost» и 127.0.0.1, и :: 1). Таким образом, это похоже на ошибку во всех случаях, когда разрешение DNS для соединений X11 в Gtk (gtk? gdk? glib? other?). При установке Debian для Beagle Bone Black файл / etc / host не был установлен для чтения кем-либо, кроме root. Это вызвало симптомы, о которых здесь сообщают. Сделал / etc / hosts доступным для чтения всем, и он работал нормально.У меня была эта проблема с моим сервером CentOS KVM, мне не хватало программы "xauth".
Это помогло мне в моей минимальной установке Debian, большое спасибо!Если у вас возникла эта проблема через некоторое время при запуске с -X arg. или просто ForwardX11 в / etc / ssh / ssh_config, затем запустите $ ssh username@hostname -Y , чтобы включить надежную пересылку X11 , не знаю точную причину, но я предполагаю, что -X срок действия некоторых функций истекает через некоторое время, возможно, для повышения безопасности.
Вот что я нашел в Интернете:
30 пользователь(ей) активно (29 пользователь(ей) просматривают Open Форум)
Участников: 0
Гостей: 30
:: Правила Форума :: - - :: ББ-коды для использования на форуме ::
sudo nautilus
Could not parse arguments: Не удалось открыть дисплей:
sudo gedit
(gedit:16632): Gtk-WARNING **: cannot open display:
И так далее.
суся 11.4 гном
надо так:
sudo -i nautilus
sudo -i gedit
итак, sudo в openSUSE. разработчики, как обычно, выбрали путь, отличный от других дистрибутивов, и попортили дефолтные настройки sudo.
Для того, чтобы вернуть sudo в нормальное состояние, надо привести файл /etc/sudoers в следующий вид:
Цитата:
Defaults always_set_home, shell_noargs
%wheel ALL=(root) ALL
Чтобы не вводить пароль каждый раз (не рекомендую):
Цитата:
Defaults always_set_home, shell_noargs
%wheel ALL=(root) NOPASSWD: ALL
Для фанатов безопасности (запрет sudo от рута и переключения шела):
Цитата:
Defaults always_set_home, !root_sudo
%wheel ALL=(root) ALL
Вуаля! Теперь пользователи группы wheel могут нормально использовать sudo.
P.S. у обычных пользователей в $PASS отсутствует каталог /sbin, поэтому скрипты оттуда надо запускать так:
Цитата:
Еще вариант - дописать в
/.profile (если файла нет, создайте):
Цитата:
Как запустить Kali Linux в Windows 10 (подсистема Linux) с помощью удаленного рабочего стола
Как запускать графические настольные приложения Linux из Bash Shell в Windows 10?
Сначала я установил подсистему Windows для Linux (WSL), выполнив следующие шаги, как показано здесь:
(1) Установлена сборка Windows 10 Pro Insider Preview 19619.
(2) Установленный дистрибутив Ubuntu Linux.
(3) Изменена версия распространения с WSL 1 на WSL 2.
Во-вторых, чтобы включить графические настольные приложения Linux из оболочки Bash в Windows 10, я выполнил следующие шаги, как показано ниже:
(4) Я установил X-сервер, который является Xming
(5) Установлен графический редактор vim на основе GTK в качестве теста с использованием:
sudo apt-get install vim-gtk
(6) Установите мою переменную среды отображения
(7) Запустить приложение
Однако это не привело к запуску приложения, и я получил следующую ошибку:
Есть идеи, почему возникает эта ошибка?
Была та же проблема, поэтому я попробовал эти другие предложения, но в итоге сработало разрешение vcxsrv через общедоступный брандмауэр. Я знаю, что вы не используете vcxsrv, но, возможно, это та же проблема для вас.
Установите VcXsrv, затем включите общедоступный брандмауэр, как на этих рисунках. Откройте брандмауэр Защитника Windows в режиме повышенной безопасности, используя wf.msc в командной строке. Затем разрешите соединения, как на этих картинках.
Затем запустите VcXsrv из этого руководства для Windows 10 WSL2.
Запустите VcXsrv, добавив параметр -ac, или введите его в командной строке "C: \ Program Files \ VcXsrv \ vcxsrv.exe": 0 -multiwindow -clipboard -wgl -ac
Затем введите это в свой терминал WSL2
Добавляя к ответу fquinner,
Твой ДИСПЛЕЙ переменная env должна быть установлена как export DISPLAY=X.X.X.X:0 использовать IP-адрес хоста Windows как WSL2 и хост Windows не находятся в одном сетевом устройстве, где X.X.X.X - IP-адрес
и ваш IP-адрес указан в resolv.conf против сервера имен ( $ cat /etc/resolv.conf )
или просто export DISPLAY='`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0' для автоматической загрузки правильного IP-адреса. Кроме того, вы можете добавить это в .bashrc или же .zshrc (Если вы используете Zsh)
Здесь есть раздел устранения неполадок для отладки X11 на wsl2:
Переадресация портов - это не то же самое, что WSL1 - ваши службы Linux могут быть доступны через локальный хост для Windows, но обратное уже не верно.
Итак, вам нужно использовать внутренний IP-адрес вашего хоста Windows и настроить брандмауэр, чтобы разрешить сеть WSL.
Выяснилось, что теперь, чтобы заставить графический интерфейс работать (по крайней мере, когда он онлайн), вам нужно использовать свой общедоступный IP .
например должно работать следующее:
Следующие инструкции были скопированы и вставлены из статьи, которую я написал, но потерял исходное форматирование, ссылки и снимки экрана:
Источник: Как установить рабочий стол Ubuntu с графическим пользовательским интерфейсом в WSL2
sudo apt --yes install ubuntu-desktop
mkdir --parents /mnt/c/users/$username/.ubuntu/
sudo dpkg --install packages-microsoft-prod.deb
sudo apt update
sudo apt update
sudo apt install --yes dotnet-sdk-5.0
sudo apt update
sudo apt install --yes systemd-genie
echo '$USER ALL=(ALL) NOPASSWD:/usr/bin/genie' | sudo EDITOR='tee' visudo --file /etc/sudoers.d/$USER
unzip -o 9fbc8a44-circle-of-friends-web.zip
convert -resize 64x64 ./circle-of-friends-web/png/cof_orange_hex.jpg ubuntu.ico
powershell.exe -file .\04_create_shortcut.ps1
gsettings set org.gnome.desktop.screensaver lock-enabled false
Читайте также: