“Не удалось открыть дисплей' (пустая)'” ошибка. Как я могу зафиксировать это?

Я пытаюсь запустить приложение, но когда я выполняю его, я получаю 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)'.
6
задан 30 March 2014 в 22:26

1 ответ

Ошибки как это означают, что Вы запускаете программу, для которой нужен графический дисплей, и это не может найти тот. Программы GUI соединяются с дисплеем, определенным $DISPLAY переменная окружения. Общий формат ошибки

Could not open display $DISPLAY

С тех пор, в Вашем случае, говорит ошибка (null), это означает это $DISPLAY не установлен. Вы поэтому должны:

  1. Если Вы входите в систему удаленной машины с помощью чего-то как 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.
    
  2. Если это - Ваша локальная машина, необходимо установить графическую среду. Если Вы уже установлены, приняв установку Ubuntu по умолчанию, можно запустить ее с этой команды:

    sudo service lightdm start
    
  3. Если у Вас есть выполнение графической среды, но по любой причине, $DISPLAY установлен на null, можно переопределить его. Детали будут зависеть от Вашей фактической ситуации, но в большинстве случаев, то, в чем Вы будете нуждаться (принятие, снова, Вы находитесь на своей локальной машине),

    export DISPLAY=:0.0
    

    Можно затем обычно запускать программу GUI.

  4. Если Вы действительно имеете выполнение X-сервера, но переключились на tty (например, путем нажатия Ctrl+Alt+F1), Вы, возможно, просто должны были бы возвратиться к своей графической среде. Это зависит, на которой виртуальной консоли Ваш GUI работает, но в большинстве случаев на Ubuntu, которая будет 7, таким образом, можно будет возвратиться к нему с помощью Alt+F7.

    Если это не возвращает Вас Вашему рабочему столу, просто цикл через весь ttys Alt+Left Стрелка или Стрелка Alt+Right, пока Вы не находите правильный.

  5. Другая типичная проблема состоит в том, что Вы запустили X сессий как свой обычный пользователь и теперь пытаетесь соединиться с нею как root или другой пользователь. Для включения этого необходимо указать, что этот пользователь имеет право получить доступ графическому рабочему столу. Например:

    xhost +si:localuser:terdon
    

    Это позволит локальному пользователю terdon соединяться с рабочим X-сервером. Команда должна быть выполнена владельцем X сессий. С другой стороны, позволить любому соединяться:

    xhost +
    

    И отменять полномочия:

    xhost -
    
9
ответ дан 17 November 2019 в 09:06

Другие вопросы по тегам:

Похожие вопросы: