문제

좋아, 나는 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를 설정하지 않고?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top