2010-11-12 266 views
8

紅寶石新手試圖弄清楚如何使用寶石,到目前爲止,體驗並不是那麼好。紅寶石寶石 - LoadError

通過寶石安裝mysql2後,我試圖用它在一個簡單的文件。

 
require 'mysql2' 

#client = Mysql2::Client.new(:host => "localhost", :username => "username") 

雖然當我運行此我得到:

 

Parse.rb:1:in `require': no such file to load -- mysql2 (LoadError) 
from Parse.rb:1 

然而,我的寶石列表包含mysql2:的 「紅寶石ENV」

 
Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner$ gem list 

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.0.1, 2.3.5, 1.3.6) 
actionpack (3.0.1, 2.3.5, 1.13.6) 
actionwebservice (1.2.6) 
activemodel (3.0.1) 
activerecord (3.0.1, 2.3.5, 1.15.6) 
activeresource (3.0.1, 2.3.5) 
activesupport (3.0.1, 2.3.5, 1.4.4) 
acts_as_ferret (0.4.3) 
arel (2.0.2) 
builder (2.1.2) 
capistrano (2.5.19, 2.5.2) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.1.0, 1.0.10) 
dnssd (1.4, 0.6.0) 
erubis (2.6.6) 
fastthread (1.0.7, 1.0.1) 
fcgi (0.8.8, 0.8.7) 
ferret (0.11.6) 
gem_plugin (0.2.3) 
highline (1.6.1, 1.5.0) 
hpricot (0.8.3, 0.6.164) 
i18n (0.4.2) 
jk-ferret (0.11.8.2) 
libxml-ruby (1.1.4, 1.1.2) 
mail (2.2.9) 
mime-types (1.16) 
mongrel (1.1.5) 
mysql2 (0.2.6) 
needle (1.3.0) 
net-scp (1.0.4, 1.0.1) 
net-sftp (2.0.5, 2.0.1, 1.1.1) 
net-ssh (2.0.23, 2.0.4, 1.1.4) 
net-ssh-gateway (1.0.1, 1.0.0) 
polyglot (0.3.1) 
rack (1.2.1, 1.0.1) 
rack-mount (0.6.13) 
rack-test (0.5.6) 
rails (2.3.5, 1.2.6) 
railties (3.0.1) 
rake (0.8.7, 0.8.3) 
RedCloth (4.2.3, 4.1.1) 
ruby-openid (2.1.8, 2.1.2) 
ruby-yadis (0.3.4) 
rubynode (0.1.5) 
sqlite3-ruby (1.3.2, 1.2.4) 
termios (0.9.4) 
thor (0.14.4) 
treetop (1.4.8) 
tzinfo (0.3.23) 
xmpp4r (0.5, 0.4) 

結果:

 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.5 
    - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.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-10 
    - GEM PATHS: 
    - /Library/Ruby/Gems/1.8 
    - /Users/tanner/.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 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://gems.rubyforge.org/ 

我在這裏做錯了什麼?我無法弄清楚。

感謝

-Tanner

+0

我幾乎完全相同的問題,你找到一個解決方案? – 2011-09-09 16:01:15

回答

6

正如您可能已經注意到的那樣,您已經安裝了多個版本的ruby。我強烈建議您使用RVM來管理多個ruby版本。

這是一個瘋狂的猜測,但如果您不使用命令行來運行應用程序並使用諸如TextMate之類的工具,則可能需要設置shell變量「TM_RUBY」以指向安裝了rubygems的ruby版本(1.8.7(2009-06-12 patchlevel 174))。

你可以試試:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/irb 

去的IRB版本安裝了RubyGems的,比嘗試:

require 'rubygems' 
require 'mysql2' 

如果那工作,你是幸福的,你既可以更新你/ usr/bin/ruby​​,/ usr/bin/irb,/ usr/bin/gem中的符號鏈接指向舊版本的ruby,或者再次安裝RVM並使您的生活變得更加輕鬆。

6

嘗試:

require 'rubygems' 
require 'mysql2' 
+0

除了'mysql2'以外,還有'rubygems'相同的錯誤 – Tanner 2010-11-12 15:11:28

+0

你的'gem env'輸出是什麼樣的? – subosito 2010-11-12 15:14:14

+0

原始帖子的結果。 – Tanner 2010-11-12 15:21:49

0

爲了獲得更多的信息,啓動IRB和運行:在終端提示符下運行

 
require 'rubygems' 
gem 'mysql2' #=> does this cause an error? 
$:.grep /mysql2/ #=> if no error from previous line, please post what this shows 

而且「寶石內容mysql2「。 您是否看到以下列結尾的路徑?

 
lib/mysql2/error.rb 
lib/mysql2/mysql2.bundle 
lib/mysql2/client.rb 
lib/mysql2/result.rb 
lib/mysql2.rb 
+0

運行「需要‘的RubyGems’」帶來的同樣的錯誤:「LoadError:沒有這樣的文件加載 - RubyGems的」 從「寶石內容mysql2」我能找到的一切,但在此基礎上的lib/mysql2/mysql2.bundle – Tanner 2010-11-12 20:09:39

+0

,似乎有2個問題。讓我們一次一個。 Rubygems無法加載,因爲你甚至不需要它。你能否需要其他寶石?你有多個版本的紅寶石?在irb中,Config :: CONFIG ['bindir']的值是什麼?在irb中,使用它來搜索rubygems.rb:$ :. each {| dir | files = Dir [File.join(dir,'* gem * .rb')];如果files.any放置文件? };無 – Kelvin 2010-11-12 20:43:17

+0

另外,在終端,運行:head -1 \'這是gem \'(反引號)。你應該看到gem命令使用的ruby可執行文件。它的目錄是否與你從irb獲得的Config :: CONFIG ['bindir']的值相符? – Kelvin 2010-11-12 20:49:22