2009-06-27 4 views
4

그래, 이제는 성공하지 않고 이걸 알아 내려고 4 시간을 보냈습니다. 나는 모든 일반적인 용의자를 시도하고 루비 1.9.1,로드 경로, 보석, 맥 OS X, freebsd, 새우 및 기타 물건의 모든 조합을 봤어.Ruby 1.9.1로드 경로의 미친 듯함

내가 맥 OS X 10.5, 디폴트의 부하 경로 ($ : 내가 얻을에 소스에서 ruby1.9.1-P129를 컴파일 할 수 있습니다 : : 결론은 이것이다

 
ruby -e "puts $:" 
/usr/local/lib/ruby/gems 
/usr/local/lib/ruby/site_ruby/1.9.1 
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0 
/usr/local/lib/ruby/site_ruby 
/usr/local/lib/ruby/vendor_ruby/1.9.1 
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0 
/usr/local/lib/ruby/vendor_ruby 
/usr/local/lib/ruby/1.9.1 
/usr/local/lib/ruby/1.9.1/i386-darwin9.7.0 
. 

나는 새우를 설치

 
gem which prawn 
(checking gem prawn-0.5.0.1 for prawn) 
/prawn.rb 

을하고 나는 그것을 필요로 할 때 내가 얻을 : 보석, 예를 들어, 내가 얻을

 
ruby -e "require 'prawn'" 
-e:1:in `require': no such file to load -- prawn (LoadError) 
    from -e:1:in `' 

내가 할 수있었습니다 유일한 방법 이 문제를 해결하려면 다음과 같이 어리석은 짓을하십시오.

$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib" 

물론 완전히 우스꽝 스럽습니다. 그래서 질문은 어떻게 루비 1.9.1을 인식하고 정확한 보석 경로를 따르는가? 나는 1.8.7에서이 문제를 겪어 본 적이 없으므로 1.9.1을 가정한다. 나는 여기에서 완전히 명백한 무엇인가를 놓치고 있다고 느낀다. 그리고 어떤 도움이라도 많이 평가 될 것이다!

+1

[RVM] (http://rvm.beginrescueend.com)은 빠른 설치 방법으로 선호되고 있습니다. 많은 개발자들이 Mac OS 및 Linux에 추가 루비를 추가했습니다. RVM을 설치하기 전에 해당 페이지의 맨 아래로 스크롤하여 "설치"및 "Ruby Gems"페이지를 읽으십시오. 설치가 끝나면'rvm notes '를 사용하여 필요한 의존성을 찾으십시오. –

답변

9

설정 GEM_PATH =/usr/지방/LIB/루비/보석/

1.9.1 문제를 해결했다. 나는 그것이 단순한 무엇인지 알았다. 그냥 하루 종일 알아낼 수밖에 없었다는 것을 나에게 격노 케했다 !! 이것은 결코 1.8.7에이 문제가 없기 때문이며 물론 RTFM이 아닙니다!

+0

다행 이네요! –

1
require 'rubygems' 
require 'prawn' 

1.9에서 변경된 사항이 없으면 더 이상 루비 젬을 요구하지 않아도됩니다.

+1

루비 1.9 루비 젬이 더 이상 필요하지 않지만 철저히 구해야 만합니다. 성공하지 않은 채로 시도했습니다. – ennuikiller

3

kubuntu karmic과 동일한 문제입니다.

설치 :

$ sudo apt-get install build-essential ruby1.9.1-full libsqlite3 libsqlite3-dev rubygems1.9 
$ sudo gem install sqlite3-ruby rails thin --no-rdoc --no-ri 

결과 :

$ ruby -e "require 'rubygems'; require 'sqlite3'" 
-e:1:in `require': no such file to load -- sqlite3 (LoadError) 
     from -e:1:in `<main>' 

솔루션 : 나는이 같은 문제에 다른 대답을 찾고 있어요

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/ 
0

. 어떤 상황 (예 : 시스템 시작 작업)에서는 루비가 실행되기 전에 환경 변수를 설정하는 것이 불가능합니다.

보석을 필요로하는 루비 (v> = 1.9.1) 코드를 실행하는 방법이 있습니까? GEM_PATH를 설정하지 않고?

+0

원래 질문에 명시된 바와 같이 필요한 보석 경로를 $로 밀어 넣을 수 있습니다. – ennuikiller

+1

"해결책"은 다음과 같습니다. Gem.activate ('gem_name'); require ('gem_name'); 특히이 GEM_PATH 문제는 1.9.2와 함께 사라집니다. – Simon

1

다음 번에 이와 같은 문제가 발생할 경우 명령 줄에서 gem env을 실행하는 것을 잊지 마십시오. 이것은 Windows에서 발생하지만 다음과 같은 원칙이 동일합니다.

C:\Documents and Settings\a.grimm>gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.5 
    - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-mingw32] 
    - INSTALLATION DIRECTORY: C:/Ruby19/lib/ruby/gems/1.9.1 
    - RUBY EXECUTABLE: C:/Ruby19/bin/ruby.exe 
    - EXECUTABLE DIRECTORY: C:/Ruby19/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-mingw32 
    - GEM PATHS: 
    - C:/Ruby19/lib/ruby/gems/1.9.1 
    - C:/Documents and Settings/a.grimm/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://gems.rubyforge.org/