2010-11-12 346 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