我过去没有这样做过,所以我可能会在这里遗漏一些东西。
我在本地更改了'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
我在这里错过了一些愚蠢的东西吗?
答案 0 :(得分:10)
Gems installed by Bundler through git are not handled the same way as normal gems:
由于Rubygems缺乏从git处理gems的能力,因此从git存储库安装的任何gem都不会显示在
gem list
中。但是,在运行Bundler.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