我正在尝试使用vagrant
, Clojure
和emacs
在一起。具体来说,我不能将cider
连接到我的vagrant
机器。
它在本地工作,当我在我的项目中运行cider-jack-in
。但是我不知道在流浪机器上的同一个项目(通过流浪共享文件夹同步)中要做什么。
这是我到目前为止的尝试:
-
ssh vagrant
,cd my-project-dir
,lein repl
- 在emacs,
cider-connect
,输入vagrant@192.168.50.50
,端口22
我得到以下消息:
SSH端口转发失败。查看 nrepll -tunnel缓冲区
在缓冲区内:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011特权端口只能使用由root转发
进程nrepll -tunnel异常退出,代码255
我如何以root身份运行它?这真的是问题所在吗?我应该使用另一个端口吗?我是否必须在我的Clojure代码中放置一些特定的东西来启用它?这里给的指示我不太清楚。
注意:它与这个问题不同,因为emacs
在主机上运行,而不是在vagrant
机器上运行
编辑:
以下是我所做的详细步骤,感谢@Shlomi的回答:通过添加以下内容编辑.ssh/config(根据您的
Vagrantfile
编辑IP):主机的流浪汉主机名192.168.50.50端口22用户的流浪汉ForwardAgent yes
在主机中,用
lein repl
启动我的项目。注意消息中的端口:nREPL server started on port 42018 on host 127.0.0.1 - nrepl://127.0.0.1:42018
在emacs中,
M-x cider-connect
,输入vagrant,您的密码和前一个lein
命令所记录的端口
您正在使用的端口似乎是ssh端口而不是nrepl端口。
我通常使用emacs进行远程访问的方式是:
- 在.ssh/config中为远程主机添加一个条目,写入vagrant
- 在emacs中,
cider-connect
,输入vagrant
- 在最新版本的cider中,它会自动找到该主机上所有活动的nrepl会话,并显示它们的项目名称和端口,所以选择正确的一个,你应该能够开始工作。