gem install mysql2 /无法加载这样的文件 - mysql2 / mysql2

时间:2013-07-12 12:50:39

标签: ruby gem bundler mysql2

尝试在Cent OS 6.3上安装带有ruby2.0.0-p247的mysql2 gem。

这一切都适用于ruby-1.9.3-p324,但使用RVM安装ruby2。我的测试代码如下

  

需要“mysql2”

     

提出“测试”

针对上面的代码运行ruby,我收到错误:

  

/usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in   require': cannot load such file -- mysql2/mysql2 (LoadError) from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in 需要'来自   /usr/local/rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.11/lib/mysql2.rb:9:in   <top (required)>' from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:60:in 需要'来自   /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:60:in   rescue in require' from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:35:in 需要'来自mysqltest.rb:1:in''

bundle install / gem install mysql2工作正常,它只是试图使用gem。我用谷歌搜索了这个,常见的答案是没有安装libmysql-devel软件包等,因为它在ruby-1.9.3下工作正常,所以情况并非如此。

文件在磁盘上

[git@rubyland-provisioner mysql2-0.3.11]$ ls lib/mysql2
client.rb  em.rb  error.rb  result.rb  version.rb

[git@rubyland-provisioner mysql2-0.3.11]$ ls ext/mysql2
client.c  client.o    Makefile  mysql2_ext.c  mysql2_ext.o  result.c  result.o
client.h  extconf.rb  mkmf.log  mysql2_ext.h  mysql2.so     result.h  wait_for_single_fd.h

如果我手动将mysql2.so(由gem安装构建,我已经检查了时间戳)复制到lib / mysql2目录,一切都按预期工作。

我对Ruby很新;我错过了什么?为什么gem安装不会将此文件复制到正确的位置。

由于

安德鲁

2 个答案:

答案 0 :(得分:2)

这被证明是RVM中的一个错误,其中RVM安装了RubyGems版本。您需要确保安装的RubyGems是2.x.对我来说情况并非如此,RVM根本没有安装RubyGems,或者没有安装正确的版本;我们最终从IRC的RVM频道获得了一些帮助。

在我们谈话的背后,有一些关于Twitter的细节。

https://twitter.com/mpapis/status/357160111883563008

答案 1 :(得分:0)

刚刚降级了mysql2版本。在我的情况下,我使用'0.2.6'版本,它适用于我。

  gem 'mysql2', '0.2.6'

使用ruby版本2.0.0和gem版本1.8.25