Getting Rugged::NetworkError on #connect

2019-03-04 18:38发布

问题:

I tried to implement fetch and this exception was raised:

Rugged::NetworkError: This transport isn't implemented. Sorry

I am able to retrieve a remote instance:

remote = Rugged::Remote.lookup(repo, remote_name)
remote.connect(:fetch)
# => Rugged::NetworkError: This transport isn't implemented. Sorry

I retrieved the development version of the gem as directed in the README:

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

How do I gain access to the connect method?

回答1:

libgit2 uses openssl for HTTPS and libssh2 for ssh. You need the development packages for them in order for the embedded libgit2 to build with support for those transports.



回答2:

Just to follow up on this, you need to install these:

openssl libssh2 libssl-dev pkg-config

Then you need to reinstall libgit2(rebuild), because the original shared libraries do not know that you've installed the new packages. See http://www.pygit2.org/install.html for installing.