Открытие emacs через SSH на OS X
[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 ответа
xhost на самом деле не имеет значения в этом случае, если вы используете SSH-туннелирование X. Вы действительно не упомянули свои настройки, поэтому я предполагаю, что ваш дисплейный клиент - Mac, а ваш сервер - linux box какой-то, и ты ssh'ing в это.
Вы пересылаете X11 через сеанс SSH? Вы можете сделать это либо добавив -X в вашу командную строку ssh, либо добавив "ForwardX11 yes" в ~/.ssh/config. Как только это будет сделано, проверьте переменную DISPLAY на сервере (после входа в нее), запустив "printenv DISPLAY". Он должен напечатать что-то вроде "localhost:10.0" или аналогичный, важной частью является часть localhost.
X11 установлен на вашем Mac? Если нет, возьми это. Для Mountain Lion вам необходимо скачать XQuartz и установить его. Для более старых версий он должен находиться в папке с пометкой "Дополнительные установки" на установочном DVD.
Если все настроено правильно, у вас установлен сервер xauth? Попробуйте запустить xauth на своем сервере и посмотреть, получите ли вы ответ. Если нет, вам нужно установить это.
Если все эти звезды находятся на одной линии, вы сможете успешно отображать X-приложения на вашем Mac.
Вы можете открыть ЛЮБЫЕ другие программы 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. Наличие вариантов отлично подходит для нужного момента.