Emacs-клиент - какая минимальная установка? - PullRequest
3 голосов
/ 25 июля 2011

Допустим, у меня есть Emacs-сервер, работающий на некотором удаленном сервере, со всеми библиотеками и программным обеспечением, необходимыми для запуска моего приложения.

Затем я хочу подключить несколько клиентов к этой удаленной машине, используя Emacs-клиент.Требуется ли каждому клиенту полная установка Emacs, или существует минимальная установка, которой достаточно для взаимодействия с удаленным сервером, где все действия?

Может ли эта (Emacs-) установка клиента быть настолько минимальной, что почти все обновления программного обеспечения могут быть выполнены на сервере, не затрагивая Emacs-клиентов?

Ответы [ 4 ]

1 голос
/ 29 июля 2011

Есть ли причина не запускать клиенты удаленно, а просто использовать локальный дисплей?Таким образом, почти все, что вам нужно на локальных машинах, это клиент ssh и сервер X Window.

ssh -X (user)@(server) "emacsclient -c"


Редактирование комментариев:

Эта команда запускает нового клиента для подключения к существующему серверу Emacs (который, как предполагается, уже запущен).Вы можете использовать "emacsclient -a '' -c" для автоматического запуска emacs --daemon, если сервер не существует, но я не знаю, хотите ли вы, чтобы подключающийся пользователь запускал сервер.

На самом деле, я довольноесли честно, я не уверен насчет многопользовательской стороны, поскольку я никогда не делал этого раньше.Аутентификация для вышеупомянутого выполняется ssh, но вполне возможно, что последующие проблемы с разрешениями, или аналогичные, будут иметь место, когда сервер и клиенты запускаются разными пользователями.

Этот подход должен быть возможным с Windows / Cygwin в качестве клиента и / или сервера, поскольку Cygwin предоставляет пакеты Emacs, OpenSSH и X.org.(Я регулярно использую Windows / Cygwin в качестве локального дисплея для Emacs, работающего в Linux.) Однако это может быть сложнее настроить, и любые проблемы с разрешениями, вероятно, различаются при использовании Cygwin.

I 'Я менее уверен, как это будет работать без Cygwin.NTEmacs, конечно, не будет общаться с X.org, поэтому я думаю, что в этом случае вы будете использовать терминалы.( , вероятно, другие варианты, но Cygwin звучит для меня как лучший интегрированный подход к использованию всех Emacs, SSH и X в Windows).

Наконец, я вас представляюВы, вероятно, получаете сообщение об ошибке «Отказано в соединении», потому что на localhost не запущен демон sshd?Я бы сказал, что настройка ssh выходит за рамки этого вопроса, но для этого есть много ресурсов.

1 голос
/ 26 июля 2011

В зависимости от того, чего вы пытаетесь достичь, вы можете использовать комбинацию Emacs и Screen.Запустив Emacs из Screen на удаленном компьютере и отсоединившись от него, вы можете впоследствии повторно подключиться с другого компьютера, на котором нет Emacs.Опять же, будет ли это работать для вас или нет, зависит от того, что вы пытаетесь сделать;однако для многих сценариев использования Emacs это может быть очень эффективным.Если вы не знакомы с использованием Screen таким способом, вот некоторые материалы для чтения:

screen - Мультиплексор терминала

0 голосов
/ 29 июля 2011

Я не эксперт по истощению, но я не думаю, что он был разработан, чтобы делать то, что вы ищете.Я думаю, что общий случай использования заключается в том, что emacsclient позволяет перенаправлять новые запросы на открытие файла с emacs в постоянный процесс emacs, чтобы избежать лишних затрат во время запуска.Кажется, вы ищете больше настоящих отношений между клиентом и сервером.

Я думаю, что для достижения цели, к которой вы стремитесь, вам, вероятно, придется взглянуть немного за пределы emacs, возможно, сам по себе проект -«emacsRemoteClient.Это сводится к одной или двум моделям;файл, который вы хотите отредактировать, должен иметь свой путь, отправляемый на сервер, чтобы emacs мог сделать какой-то удаленный доступ, а затем запустить xwindow локально (используя локальный X-env или требуя x-сервера в windows)... или два, перенесите файл в какое-то временное местоположение на сервере и снова создайте локально удаленное окно x (с последующей синхронизацией изменений между tmp и локальным файлом).

Было бы здорово иметь что-токак это ... но подозревать, что это потребует немного работы.Может быть, нам просто нужна версия emacs, написанная на javascript, и она может жить в облаке или в вашем браузере ... о, чтобы иметь привязки клавиш emacs в браузере; -)

-Steve

0 голосов
/ 25 июля 2011

Я не уверен, что это было бы возможно. emacsclient использует tramp для подключения к удаленному серверу, и просто взглянув на число require s в файлах tramp elisp (41), это кажется маловероятным. Вы можете попробовать это самостоятельно со следующим:

zgrep -oE "\(require '[a-z-]+\)" *el.gz | sed -e 's%[a-z0-9-]\+\.el\.gz:%%g' | sort | uniq -cu | wc -l

...