3

アプリケーションを実行するために必要なすべてのライブラリとソフトウェアを備えた、リモートサーバーで実行されている Emacs-Server があるとします。

次に、Emacs-client を使用して、複数のクライアントがそのリモート マシンに接続するようにします。各クライアントには完全な Emacs インストールが必要ですか、それともすべてのアクションがあるリモート サーバーと通信するのに十分な最小限のインストールが必要ですか?

この (Emacs-) クライアントのインストールは、Emacs クライアントに影響を与えることなく、ほとんどすべてのソフトウェア更新をサーバー上で実行できるほど最小限にできるでしょうか?

4

4 に答える 4

1

クライアントをリモートで実行せず、単にローカルディスプレイを使用する理由はありますか?このように、ローカルマシンで必要なのは、sshクライアントとXWindowサーバーだけです。

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


コメントの編集:

このコマンドは、新しいクライアントを起動して、既存のEmacsサーバー(すでに実行されていると想定)に接続します。既存のサーバーがない場合は、を使用"emacsclient -a '' -c"して自動的に起動できemacs --daemonますが、接続しているユーザーにサーバーを起動させるかどうかはわかりません。

実際、これまでマルチユーザー側で行ったことがないので、正直なところ、これのマルチユーザー側全体についてはかなり確信が持てません。上記の認証はsshによって処理されますが、サーバーとクライアントが異なるユーザーによって起動された場合、対処するための後続のアクセス許可の問題などが発生する可能性があります。

CygwinはEmacs、OpenSSH、およびX.orgパッケージを提供しているため、このアプローチは、クライアントおよび/またはサーバーとしてWindows/Cygwinを使用することで可能になるはずです。(私はLinux上で実行されているEmacsのローカルディスプレイとしてWindows / Cygwinを定期的に使用しています。)ただし、セットアップが難しい場合があり、Cygwinを使用している場合はアクセス許可の問題が異なる可能性があります。

Cygwinなしでこれがどのように機能するかはわかりません。NTEmacsは確かにX.orgと通信しないので、その場合はターミナルベースになると思います。(おそらく他のオプションありますが、Cygwinは、WindowsでEmacs、SSH、およびXのすべてを使用するための最良の統合アプローチのように思えます)。

最後に、ローカルホストがsshdデーモンを実行していないために、おそらく「接続が拒否されました」というエラーが発生していると思いますか?sshの設定はこの質問の範囲外だと思いますが、そのためのリソースはオンラインにたくさんあります。

于 2011-07-29T13:27:42.523 に答える
1

達成しようとしていることに応じて、Emacs と Screen を組み合わせて使用​​できる場合があります。リモート マシンの Screen から Emacs を起動して切り離すと、Emacs を持たない別のマシンから再接続できます。繰り返しますが、これがうまくいくかどうかは、何をしようとしているのかによって異なります。ただし、多くの Emacs ユースケースでは、これは非常に効果的です。この方法での Screen の使用に慣れていない場合は、次の資料を参照してください。

screen - ターミナルマルチプレクサ

于 2011-07-25T22:48:24.867 に答える
0

それが可能かどうかはわかりません。emacsclient は、tramp を使用してリモート サーバーに接続します。tramprequireの elisp ファイル内の s の数 (41) を見ると、その可能性は非常に低いように思えます。次の方法で自分で試すことができます。

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

于 2011-07-24T23:47:15.847 に答える
0

私は emacsclient の専門家ではありませんが、あなたが探しているように設計されているとは思いません。一般的な使用例は、emacsclient を使用すると、emacs でファイルを開くための新しいリクエストを永続的な emacs プロセスにリダイレクトして、起動時のオーバーヘッドを回避できることだと思います。真のクライアント/サーバー関係をもっと探しているようです。

あなたが目指している目標を達成するには、おそらくemacsの外側、おそらくそれ自体がプロジェクトである「emacsRemoteClient. 1 つまたは 2 つのモデルに要約されます。編集するファイルのパスをサーバー マシンに送信して、emacs がある種のリモート トランプ アクセスを実行し、xwindow をローカルで生成できるようにする必要があります (ローカルの X 環境を使用するか、Windows で x サーバーを必要とします)。 ..または2つ、ファイルをサーバーボックスの一時的な場所に転送し、リモートxウィンドウをローカルで再度生成します(その後、tmpファイルとローカルファイル間の変更を同期します)。

そのようなものがあればクールだろう...しかし、それには少し手間がかかるのではないかと疑っている. たぶん、javascript で書かれたバージョンの emacs が必要なだけで、それはクラウドまたはブラウザーに置くことができます...ああ、ブラウザーに emacs のキーバインドがあれば ;-)

-スティーブ

于 2011-07-29T07:04:15.137 に答える