Ruby LoadError要求gem具有:path或:git

Ruby LoadError要求gem具有:path或:git,ruby,gem,rvm,bundler,Ruby,Gem,Rvm,Bundler,我这里有个很奇怪的问题 我在github上分叉了一个gem来做一些修改,在本地机器上克隆了我的repo,进行了更改并更改了另一个项目的Gemfile,以便从本地存储库获取gem进行测试。不幸的是,在我的ruby脚本中需要gem时,我得到了一个LoadError rvm current => ruby-1.9.3-p448 ruby --version => ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux] bundle

我这里有个很奇怪的问题

我在github上分叉了一个gem来做一些修改,在本地机器上克隆了我的repo,进行了更改并更改了另一个项目的Gemfile,以便从本地存储库获取gem进行测试。不幸的是,在我的ruby脚本中需要gem时,我得到了一个LoadError

rvm current => ruby-1.9.3-p448
ruby --version => ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
bundle --version => Bundler version 1.3.5
我的文件内容:

source 'http://rubygems.org

gem 'steps', :path => "/home/benny/workspace/steps"
捆绑输出:

$ bundle --no-cache
Resolving dependencies...

Using colored (1.2) 
Using highline (1.6.19) 
Using steps (1.0.2) from source at /home/benny/workspaces/steps 
Using bundler (1.3.5) 
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.


$ bundle show steps
/home/benny/workspaces/steps
通过irb进行测试效果良好:

$ bundle exec irb
1.9.3-p392 :001 > require 'rubygems'
 => false 
1.9.3-p392 :002 > require 'steps'
 => true
通过脚本进行测试不起作用:

$ cat test.rb
require 'rubygems'
require 'steps'

$ ruby test.rb
/home/benny/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- steps (LoadError)
from /home/benny/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from test.rb:2:in `<main>'
$cat test.rb
需要“rubygems”
需要“步骤”
$ruby test.rb
/home/benny/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:在'require'中:无法加载此类文件--步骤(LoadError)
from/home/benny/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
来自test.rb:2:in`'
我现在很困惑。如果在本地git repo或github repo中使用:git而不是:path,也会发生同样的情况


有什么想法吗?

您必须在运行test.rb之前加载bundler环境

bundle exec ruby test.rb

您可以通过以下方式与bundler环境一起运行:

bundle exec ruby script.rb
或者要求在导致问题的gem之前在脚本中设置捆绑程序

require 'bundler/setup'

我在那里找到的大多数链接都指向Bundler网站上的文档,但不幸的是,大多数链接现在都死掉了。

哇,过去半个小时我一直在挠头。。。。宝石安装罚款,捆绑显示,但你不能加载它。您能解释一下为什么我们需要对本地gems使用bundle exec吗?