假設我有一臺運行在某個遠程服務器上的Emacs-Server,運行我的應用程序所需的所有庫和軟件。Emacs客戶端 - 最小安裝是什麼?
然後,我想要幾個客戶端使用Emacs-client連接到該遠程機器。每個客戶端是否需要完整的Emacs安裝,或者是否有足夠的最低限度安裝來與遠程服務器進行通信,其中的所有操作都是?
這個(Emacs-)客戶端安裝是否如此之小,幾乎所有的軟件更新都可以在服務器上完成,而不會影響Emacs客戶端?
假設我有一臺運行在某個遠程服務器上的Emacs-Server,運行我的應用程序所需的所有庫和軟件。Emacs客戶端 - 最小安裝是什麼?
然後,我想要幾個客戶端使用Emacs-client連接到該遠程機器。每個客戶端是否需要完整的Emacs安裝,或者是否有足夠的最低限度安裝來與遠程服務器進行通信,其中的所有操作都是?
這個(Emacs-)客戶端安裝是否如此之小,幾乎所有的軟件更新都可以在服務器上完成,而不會影響Emacs客戶端?
emacs的鍵綁定是否有一個原因不要遠程運行客戶端,只需使用本地顯示器?這樣,本地機器上幾乎所有你需要的就是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作爲在Linux上運行的Emacs的本地顯示器。)但是,設置可能比較困難,而且當您使用Cygwin時,任何權限問題可能都會有所不同。
我不太確定沒有Cygwin,這是如何工作的。 NTEmacs肯定不會與X.org交流,所以我想你會在這種情況下成爲終端用戶。 (可能是其他選項,但Cygwin聽起來像是在Windows上使用所有Emacs,SSH和X的最佳集成方法)。
最後,我想你可能會得到你的「連接被拒絕」錯誤,因爲localhost沒有運行sshd守護進程?我會說ssh的配置超出了這個問題的範圍,但是網上有很多資源。
我不知道這是可能的。 emacsclient使用tramp連接到遠程服務器,並且通過查看tramp elisp文件(41)中的require
的數量,它似乎不太可能。你可以自己用以下嘗試:
zgrep -oE "\(require '[a-z-]+\)" *el.gz | sed -e 's%[a-z0-9-]\+\.el\.gz:%%g' | sort | uniq -cu | wc -l
謝謝,那不是我所希望的。也許,通過Emacs 24,只需在本地安裝Emacs(客戶端)的最低核心版本並將所有庫存放在遠程服務器上,所有客戶端都可以訪問它們。順便說一句,令人驚歎的Linux命令行巫術。 – Thorsten
取決於你想要達到的目標,你可以使用Emacs和畫面的結合。通過從遠程計算機上的屏幕啓動Emacs並從中分離,您可以隨後從不具有Emacs的其他計算機重新連接。再次,這是否會對你有用取決於你想要做什麼;但是,對於許多Emacs用例,這可能非常有效。如果你不熟悉這種方式使用的屏幕,下面是一些閱讀材料:
我不是emacsclient的專家,但我不認爲這是被設計用來做什麼你正在尋找。我認爲一般的用例是emacsclient允許你重定向新的請求,用emacs打開一個文件到一個持久的emacs進程,以避免在啓動的時候可能會有一點開銷。您似乎正在尋找更多真正的客戶端/服務器關係。
我認爲要實現您瞄準的目標,您可能需要在emacs外部尋找一些東西,可能是自己的項目 - 'emacsRemoteClient。它歸結爲一個或兩個模型;你想要編輯的文件需要將它的路徑發送到服務器機器,以便emacs可以做某種類型的遠程流量訪問,然後在本地產生xwindow(使用本地X env或在Windows上需要x服務器)。 ..或兩個,將文件傳輸到服務器盒上的某個臨時位置,並再次在本地產生遠程x窗口(隨後同步tmp &本地文件之間的更改)。
會很酷,有類似的東西......但懷疑它會涉及一些工作。也許我們只是需要一個版本用JavaScript編寫的Emacs,它可以生活在雲中或在您的瀏覽器...哦,有在瀏覽器;-)
史蒂夫
您好Steve,聽起來有趣,我認爲zev和phils在他們的答案中顯示了Emacs以外可能工作的極少。那是 - 你知道康克嗎?這是一個用JavaScript編寫的Web瀏覽器,在Emacs之後,使用緩衝區和Emacs鍵綁定。 – Thorsten
太好了,謝謝。這樣簡單的事情,所有更新和所有維護都發生在服務器上,無需安裝,這正是我一直在尋找的。我目前沒有遠程服務器試用它,它是否也可以在localhost上運行?是僅限於Linux機器,還是可能在Windows上(有/沒有cygwin)? – Thorsten
還有一些問題:這是否會啓動新的emacsclient,或連接到現有的?如果Emacs始終在服務器上運行,並且emacs客戶端僅在客戶端計算機上按需啓動,那將很方便。身份驗證如何在像這樣的設置中工作? – Thorsten
當我嘗試:sudo ssh -X tj1 @ localhost「emacsclient -c」我得到 ssh:連接到主機localhost端口22:連接被拒絕 – Thorsten