[kevin@serverA myFolder]$ emacs sample
emacs: Cannot connect to X server <IP Address>
Check the DISPLAY environment variable or use `-d'. Also use the `xhost'
program to verify that it is set to permit connections from your machine.

Я запустил xhost+ до ssh'ing на мой сервер.

Почему я не могу открыть emacs?

2 ответа2

3

xhost не очень важен в этом случае, если вы используете SSH-туннелирование X. Вы действительно не упомянули свои настройки, поэтому я предполагаю, что ваш дисплейный клиент - Mac, а ваш сервер - Linux какой-то, и ты ssh'ing в это.

  1. Вы пересылаете X11 через сеанс SSH? Вы можете сделать это либо добавив -X в вашу командную строку ssh, либо добавив "ForwardX11 yes" в ~/.ssh/config. Как только это будет сделано, проверьте переменную DISPLAY на сервере (после входа в нее), запустив "printenv DISPLAY". Он должен напечатать что-то вроде «localhost:10.0» или аналогичный, важной частью является часть localhost.

  2. X11 установлен на вашем Mac? Если нет, возьми это. Для Mountain Lion вам нужно скачать XQuartz и установить его. Для более старых версий он должен находиться в папке с пометкой "Дополнительные установки" на установочном DVD.

  3. Если он установлен правильно, у вас установлен xauth на вашем сервере? Попробуйте запустить xauth на своем сервере и посмотреть, получите ли вы ответ. Если нет, вам нужно установить это.

Если все эти звезды выровнены, вы сможете успешно отображать X-приложения на вашем Mac.

0

Вы вообще можете открыть ЛЮБЫЕ другие программы X? Что если вы попробуете xclock? Командная строка по умолчанию выводит свой X-дисплей на ожидаемые "дисплеи", созданные на машине, на которой вы находитесь. Ошибка приводит к тому, что вы предоставляете информацию о пересылке, чтобы он мог отправить окно дисплея в вашу локальную систему X11. Если у вас еще не запущен X11 в вашей локальной системе, перейдите к концу этого сообщения, чтобы найти альтернативу.

Я думаю, что пересылка для вас не выполняется автоматически, только X11Forwarding в /etc /sshd_config из обсуждения в вашем первом ответе. Поэтому следуйте приведенным здесь инструкциям, чтобы использовать параметр командной строки дисплея (должен выполняться каждый раз):

emacs sample -display your-actual-hostname-or-ip:0.0

Если все это не помогает, используйте только текстовый обходной путь, пока вы находитесь в удаленном доступе: emacs -nw sample Если вы используете это, имейте в виду, что ничего, даже меню могут быть активными. Возможно, вам придется выполнить [F8], а затем следовать текстовым указаниям меню, чтобы перейти к пунктам меню. Для этого может быть обходной путь .emacs.


Зная emacs, вы можете справиться с этим с другой стороны, если вы скачали локальную версию emacs (я предлагаю xemacs). Режим tramp для emacs ИНИЦИАТИРУЕТ сеансы ssh на удаленном хосте и легко редактирует файлы. Есть открытые вопросы об обмене стеками, например, о таких рабских ssh-оболочках. Вот еще один с несколькими подробностями о eshell и режиме tramp. Наличие вариантов отлично подходит для нужного момента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .