devtools :: install_git通过SSH

时间:2015-10-23 03:24:36

标签: r git ssh devtools

我已经在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。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:12)

自己进入这个问题。我知道这个问题有点陈旧,但对于其他遇到同样问题的人(比如我),这就是我发现的问题。

问题

可能您没有git2rdevtools用来与git交互的包)用于通过SSH进行通信的库。

解决方案

安装它。以下示例假定Ubuntu。

sudo apt-get install libssh2-1 libssh2-1-dev

git2r使用名为LibSSH2的库来启用通过SSH传输。如果您使用的是Linux,则可以使用软件包管理器进行安装。 注意如果你在Windows上,git2r还不支持SSH协议:/ git2r版本0.11.0开始(它也使用libgit2it looks like SSH is supported on Windows的更新版本。在此编辑中,git2r的最新版本为0.15,因此如果您在Windows上没有SSH支持,请尝试更新git2r(请留意zeehio获取新闻)。

安装LibSSH2 后,您需要重新安装git2r软件包以启用SSH传输(因为它在程序包启用/启用时已启用/禁用)建)。

来源

GitHub上的问题:

为什么我需要LibSSH2? git没有使用它,对吧?

你是对的! git没有使用它(据我所知)。但是,libgit2git使用的纯C git2r API实现。