【问题标题】:devtools::install_git Over SSHdevtools::install_git 通过 SSH
【发布时间】:2016-01-22 12:29:21
【问题描述】:

我已经编写了一个 R 包,我将它保存在 SSH 服务器上的(裸)git 存储库中,我希望能够将它安装在本地计算机上,而无需手动克隆存储库。

我尝试了以下方法:

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

【问题讨论】:

    标签: r git ssh devtools


    【解决方案1】:

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

    问题

    您可能没有 git2rdevtools 用于与 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 上的问题:

    为什么我需要 LibSSH2? git 不会用吧?

    你是对的! git 不使用它(据我所知)。但是,libgit2git2r 使用的纯 C git API 实现。

    【讨论】:

    • 注意,如果你在 Windows 上,git2r 还不支持 SSH 协议:/ 那就解释了,谢谢你的回答!
    • 更新:从 git2r 0.11.0 开始支持 SSH 传输。 git2r::libgit2_features() 表示支持 SSH。
    • @zeehio 非常感谢您的更新。我发现了他们讨论 Windows 上 SSH 远程支持的问题。我会更新答案。
    • “install.packages 中的警告:包‘LibSSH2’不可用(适用于 R 版本 3.4.3)”
    • @Mox 你必须通过你的操作系统包管理器安装 libssh2。它不是 R 包。
    猜你喜欢
    • 2016-06-04
    • 2017-06-27
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2020-02-29
    • 2021-12-05
    • 2010-11-23
    • 2014-07-16
    相关资源
    最近更新 更多