繁体   English   中英

在Gemfile中将git-repo传递给gem时,需要gem的问题

[英]Issue with require gem, when passing git-repo to gem in Gemfile

我过去没有这样做过,所以我可能会在这里遗漏一些东西。

我在本地更改了'ruby-git'的Gem文件,它运行正常。 在我的Github回购中,我分叉了一个宝石并对它进行了相同的更改。

在构建Sinatra应用程序以将其推送到Heroku时,我更改了Gemfile ,如下所示:

gem 'git', :git => "git://github.com/silverSpoon/ruby-git.git"`  

当我运行bundle install ,我得到了

Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Using rugged 0.21.0
Using sinatra 1.4.5
Using git 1.2.8 from git://github.com/silverSpoon/ruby-git.git (at master)
Your bundle is complete!
  • 但是,当我说⇒ gem list git ,它不会显示已安装的宝石。
  • 当我运行时, ⇒ bundle show git ,它显示了安装gem repo的路径 -
    /Users/jatinganhotra/.rvm/gems/ruby-2.1.3@527website/bundler/gems/ruby-git-c7fb35af1a99
  • 当我运行我的应用程序,或运行irb并执行2.1.3 :001 > require 'git'
    它得到以下错误 -
    LoadError: cannot load such file -- git

我在这里想念傻事吗?

Bundler通过git安装的Gems的处理方式与普通gem不同

由于Rubygems缺乏从git处理gems的能力,因此从git存储库安装的任何gem都不会显示在gem list 但是,它们将在运行Bundler.setupBundler.setup

为了使用gem,您需要通过Bundler来完成它。 启动IRB或您的应用程序时使用bundle exec ,或者在代码中使用Bundler.setup

$ bundle exec irb
> require 'git' # should work ok

要么:

$ irb
> require 'bundler/setup'
> require 'git' # should also work

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM