2011-04-22 7 views
6

restclient 모듈을 필요로하는 Ruby 스크립트가 있습니다. 난 그냥이 한 줄 아래로 감소하면 계속 실패 :ruby와 irb는 다른 모듈 검색 경로를 사용합니까?

#!/usr/bin/env ruby 

require 'restclient' 

내가 그것을 실행하면, 나는 다음과 같은 오류가 발생합니다 :

./test.rb:3:in `require': no such file to load -- restclient (LoadError) 
    from ./test2.rb:3 

내가 IRB를 실행하면, 모듈로드 미세 :

$ irb 
>> require "restclient" 
=> true 
>> 

스크립트와 IRB가 동일한 모듈 경로를 가지고있는 것처럼 지금까지 내가 말할 수있는, 그것은 같습니다

$ ruby -e "puts $:" 
/Library/Ruby/Site/1.8 
/Library/Ruby/Site/1.8/powerpc-darwin10.0 
/Library/Ruby/Site/1.8/universal-darwin10.0 
/Library/Ruby/Site 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 
. 

$ irb 
>> puts $: 
/Library/Ruby/Site/1.8 
/Library/Ruby/Site/1.8/powerpc-darwin10.0 
/Library/Ruby/Site/1.8/universal-darwin10.0 
/Library/Ruby/Site 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 
. 
=> nil 
>> 
0123을

모듈이 irb를 통해로드되지만 Ruby를 통해 직접 실행되지 않는 이유는 무엇입니까?

다른 혼란스러운 세부 사항 중 하나는 restclient gem이 내 경로에서 시작하지 않는 것 같습니다. irb가 그것을 어떻게 찾았습니까?

$ locate restclient | grep gems 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/bin/restclient 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/exceptions.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/net_http_ext.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/payload.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/raw_response.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/resource.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/response.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient.rb 
/Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/spec/restclient_spec.rb 

감사합니다 - 마크

답변

12

소스 코드 파일에

require "rubygems" 

을 시도하거나 루비 -rubygems filename.rb와 루비 프로그램을 시작.

+0

문제가 해결되었습니다. 감사합니다. – Marc

관련 문제