Я пытаюсь запустить приложение, но когда я выполняю его, я получаю a
Could not open display `(null').
Ошибка. Почему это? Конкретно я пытался выполнить царапину (который я установил через aws):
root@ip-10-251-56-90:/usr/bin# ./scratch
Executing: /usr/lib/squeak/4.4.7-2357/squeakvm -encoding UTF-8 -vm-display-x11 -xshm -plugins /usr/lib/scratch/plugins/:/usr/lib/squeak/4.4.7-2357/ -vm-sound-ALSA /usr/share/scratch/Scratch.image
Could not open display `(null)'.
Ошибки как это означают, что Вы запускаете программу, для которой нужен графический дисплей, и это не может найти тот. Программы GUI соединяются с дисплеем, определенным $DISPLAY
переменная окружения. Общий формат ошибки
Could not open display $DISPLAY
С тех пор, в Вашем случае, говорит ошибка (null)
, это означает это $DISPLAY
не установлен. Вы поэтому должны:
Если Вы входите в систему удаленной машины с помощью чего-то как ssh
, необходимо будет экспортировать $DISPLAY
из Вашей локальной машины и говорят удаленному компьютеру отображать программы GUI там. Это может быть, покончили -X
или -Y
опции ssh
:
ssh -Y root@10.251.56.90
Как объяснено в man ssh
:
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
subjected to the X11 SECURITY extension controls.
-X Enables X11 forwarding. This can also be specified on a per-host
basis in a configuration file.
Если это - Ваша локальная машина, необходимо установить графическую среду. Если Вы уже установлены, приняв установку Ubuntu по умолчанию, можно запустить ее с этой команды:
sudo service lightdm start
Если у Вас есть выполнение графической среды, но по любой причине, $DISPLAY
установлен на null
, можно переопределить его. Детали будут зависеть от Вашей фактической ситуации, но в большинстве случаев, то, в чем Вы будете нуждаться (принятие, снова, Вы находитесь на своей локальной машине),
export DISPLAY=:0.0
Можно затем обычно запускать программу GUI.
Если Вы действительно имеете выполнение X-сервера, но переключились на tty (например, путем нажатия Ctrl+Alt+F1), Вы, возможно, просто должны были бы возвратиться к своей графической среде. Это зависит, на которой виртуальной консоли Ваш GUI работает, но в большинстве случаев на Ubuntu, которая будет 7, таким образом, можно будет возвратиться к нему с помощью Alt+F7.
Если это не возвращает Вас Вашему рабочему столу, просто цикл через весь ttys Alt+Left Стрелка или Стрелка Alt+Right, пока Вы не находите правильный.
Другая типичная проблема состоит в том, что Вы запустили X сессий как свой обычный пользователь и теперь пытаетесь соединиться с нею как root
или другой пользователь. Для включения этого необходимо указать, что этот пользователь имеет право получить доступ графическому рабочему столу. Например:
xhost +si:localuser:terdon
Это позволит локальному пользователю terdon
соединяться с рабочим X-сервером. Команда должна быть выполнена владельцем X сессий. С другой стороны, позволить любому соединяться:
xhost +
И отменять полномочия:
xhost -