3

使用带有已安装依赖项的 openSUSE 和 Ubuntu,我无法使用Rugged::Repository.clone_at方法克隆远程存储库并收到错误消息:

Rugged::NetworkError:此传输未实现。对不起

编码:

credentials = Rugged::Credentials::SshKey.new(:privatekey=>'path/to/privatekey', :publickey=>'path/to/publickey', :passphrase=>'passphrase')
Rugged::Repository.clone_at 'ssh://github.com/vmoravec/repo', 'dir/to/destination', :credentials => credentials

我的 Rails 项目的 Gemfile 包含对 github 存储库的引用,如下所示:

gem 'rugged', git: 'git://github.com/libgit2/rugged.git', branch: 'development', submodules: true

已使用命令安装 gembundle install --path bundle/ 克隆即使使用也不起作用bundle exec rails console

安装的系统包:

  • libssh2, libssh2-devel
  • openssl,libopenssl-devel,libopenssl

在 SO 上已经有类似的问题,但该解决方案不起作用(尽管我认为它适用于 MacOS):Getting Rugged::NetworkError on #connect

4

1 回答 1

1

删除bundle/目录并重新安装 gemsbundle install --path bundle/解决了两个系统上的问题。由于某些原因,构建系统似乎无法检测到传输/usr/lib64/libssh2.so.1所需的依赖关系。ssh卡洛斯,感谢您用于ldd rugged.so检查的提示。

于 2014-05-20T12:43:22.500 回答