2013-08-12 19 views
6

Tôi có một vấn đề thực sự lạ ở đây.LoadError bằng cách yêu cầu một viên ngọc với: path hoặc: git

Tôi chia một viên đá quý trên github để thực hiện một số sửa đổi, sao chép repo của tôi trên máy cục bộ của tôi, thực hiện các thay đổi và thay đổi Gemfile của dự án khác để lấy đá quý từ kho lưu trữ cục bộ của tôi để kiểm tra nó. Thật không may tôi nhận được một LoadError trong khi yêu cầu đá quý trong kịch bản ruby ​​của tôi.

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 

Nội dung Gemfile tôi:

source 'http://rubygems.org 

gem 'steps', :path => "/home/benny/workspace/steps" 

Bundle đầu ra:

$ 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 

kiểm tra thông qua các tác phẩm IRB tốt:

$ bundle exec irb 
1.9.3-p392 :001 > require 'rubygems' 
=> false 
1.9.3-p392 :002 > require 'steps' 
=> true 

kiểm tra thông qua kịch bản không làm việc:

$ 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>' 

Tôi rất bối rối ngay bây giờ. Tương tự xảy ra nếu tôi sử dụng: git thay vì: đường dẫn với git repo cục bộ hoặc repo github.

Bất kỳ ý tưởng nào?

Trả lời

12

Bạn sẽ phải tải các môi trường bundler trước khi chạy test.rb

bundle exec ruby test.rb 
+1

Hoạt động. Cảm ơn bạn! – phortx

+0

Wow Tôi đã gãi đầu của tôi trong nửa giờ .... Gem cài đặt tiền phạt, bundler cho thấy nó nhưng bạn không thể tải nó. Bạn có thể vui lòng cung cấp giải thích một chút về TẠI SAO chúng tôi cần sử dụng gói exec cho đá quý cục bộ? – BlackDivine

0

Bạn có thể chạy với môi trường bundler qua: bundle exec ruby script.rb

Hoặc yêu cầu thiết lập bundler trong kịch bản của bạn trước khi đá quý đang gây ra vấn đề. require 'bundler/setup'

Hầu hết các liên kết tôi đã tìm thấy ở đây về tài liệu này được trỏ tới trang của Bundler, nhưng hầu hết các liên kết đều không may.

Các vấn đề liên quan