簡體   English   中英

Ruby新手,LOAD_PATH遇到問題

[英]New to Ruby and am having trouble with LOAD_PATH

我最近通過從源代碼進行編譯,在OS X 10.8.3上安裝了Ruby 2.0.0。 我檢查了版本

$ ruby --version
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]

我檢查了我的寶石版本

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-12
  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/ehartsuyker/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - :benchmark => false
     - :sources => ["http://rubygems.org/", "http://gemcutter.org"]
  - REMOTE SOURCES:
     - http://rubygems.org/
     - http://gemcutter.org

我注意到此處報告的Ruby版本與我安裝的版本不匹配。 我不知道這是否重要。

我有一個正在運行的簡單代碼encrypy.rb。 用gem安裝“ rsa” gem后,安裝rsa。

require 'rubygems'
require 'rsa'

key = RSA::KeyPair.generate(128)
ciphertext = key.encrypt("message")
puts(ciphertext)

當我運行它時,它給出一個錯誤,指出它找不到寶石。

$ ruby encrypt.rb -Idirectory '/Library/Ruby/Gems/1.8'
/usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- rsa (LoadError)
    from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from encrypt.rb:2:in `<main>'

所以問題是,為什么Ruby似乎不知道寶石在哪里,但為什么找不到寶石呢? 我該如何解決?

Ruby 1.8.7隨OS X一起提供。似乎gem在看到該版本,而不是您手動安裝的2.0.0。 正如其他人已經建議的那樣,使用RVM或rbenv(取決於個人喜好)使處理不同的紅寶石環境變得更加容易。 您可以在以下位置找到這些工具和說明:

RVM: https//rvm.io/

rbenv: https//github.com/sstephenson/rbenv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM