我已经在SSH服务器上写了一个R包,我保存在(裸)git存储库中,我希望能够在本地计算机上安装它,而无需手动克隆存储库。 / p>
我尝试过以下方法:
devtools::install_git("ssh://user_name@remote/path/to/repository")
但我收到了错误
Downloading git repo ssh://user_name@remote/path/to/repository
Error in git2r::clone(x$url, bundle, progress = FALSE) :
Error in 'git2r_clone': Failed to start SSH session: Unable to exchange encryption keys
我在Windows 7计算机上使用R 3.1.2,git2r版本0.11.0和devtools版本1.9.1。任何帮助将不胜感激。谢谢!
答案 0 :(得分:12)
自己进入这个问题。我知道这个问题有点陈旧,但对于其他遇到同样问题的人(比如我),这就是我发现的问题。
可能您没有git2r
(devtools
用来与git
交互的包)用于通过SSH进行通信的库。
安装它。以下示例假定Ubuntu。
sudo apt-get install libssh2-1 libssh2-1-dev
git2r
使用名为LibSSH2的库来启用通过SSH传输。如果您使用的是Linux,则可以使用软件包管理器进行安装。 注意如果你在Windows上,从git2r
还不支持SSH协议:/ git2r
版本0.11.0开始(它也使用libgit2
)it looks like SSH is supported on Windows的更新版本。在此编辑中,git2r
的最新版本为0.15,因此如果您在Windows上没有SSH支持,请尝试更新git2r
(请留意zeehio获取新闻)。
安装LibSSH2 后,您需要重新安装git2r
软件包以启用SSH传输(因为它在程序包启用/启用时已启用/禁用)建)。
GitHub上的问题:
git
没有使用它,对吧?你是对的! git
没有使用它(据我所知)。但是,libgit2是git
使用的纯C git2r
API实现。