문제
좋아, 나는 4 시간 동안 성공하지 않고 이것을 알아 내려고 노력했다. 나는 모든 일반적인 용의자를 시도하고 Ruby 1.9.1,로드 경로, 보석, Mac OS X, FreeBSD, 새우 및 기타 물건의 모든 조합을 검색했습니다. 결론은 이것입니다.
Mac 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"
물론 그것은 완전히 우스운 일입니다. 따라서 문제는 Ruby 1.9.1이 올바른 보석 경로를 인식하고 따라야하는 방법입니다. 나는 1.8.7 로이 문제를 본 적이 없으므로 1.9.1에 구체적이라고 가정합니다. 나는 여기서 완전히 명백한 것을 놓치고 있다고 생각하며 어떤 도움이든 큰 감사를 드릴 것입니다!
해결책
gem_path 설정 =/usr/local/lib/ruby/gems/1.9.1
문제를 해결했습니다. 나는 그것이 간단하다는 것을 알았습니다. 그냥 알아내는 데 하루 종일 걸렸다는 것을 악화시킵니다 !! 이것은 1.8.7 로이 문제를 제기하지 않았으며 물론 RTFM이 아닙니다 !!
다른 팁
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/
require 'rubygems'
require 'prawn'
1.9에 상황이 바뀌지 않는 한 더 이상 RubyGems를 먼저 필요로하지 않아도됩니다.
다음에 그런 문제가 있으면 실행하는 것을 잊지 마십시오 gem env
명령 줄에서. 이것은 창에서 일어나는 일이지만 원칙은 거의 동일합니다.
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/
같은 문제에 대한 다른 대답을 찾고 있습니다. 어떤 상황에서는 루비가 실행되기 전에 환경 변수를 설정하는 것은 불가능합니다.
Ruby (v> = 1.9.1) 코드를 실행하는 방법이 있습니까? gem_path를 설정하지 않고?