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

标签 ruby gem bundler mysql2

尝试在 Cent OS 6.3 上使用 ruby​​2.0.0-p247 安装 mysql2 gem。

这在 ruby​​-1.9.3-p324 上一切正常,但使用 RVM 安装 ruby​​2。我的测试代码如下

require "mysql2"

puts "test"

针对上述代码运行 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 require' from /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 require' from /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 require' from 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 安装没有将此文件复制到正确的位置。

谢谢

安德鲁

最佳答案

这原来是RVM中安装的RubyGems版本的错误。您需要确保安装的 RubyGems 是 2.x。对我来说情况并非如此,RVM 要么根本没有安装 RubyGems,要么没有安装正确的版本;我们最终从 IRC 上的 RVM channel 得到了一些帮助。

在我们的谈话之后,Twitter 上有更多详细信息。

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

关于ruby - gem install mysql2/无法加载这样的文件——mysql2/mysql2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615327/

相关文章:

rvm - 我如何与 Chef 一起使用 `bundle install`?

ruby-on-rails - 捆绑安装不起作用?

ruby - 是什么导致我的 Ruby `trap` block 出现这种死锁?

ruby-on-rails - rails 中的事件记录 postgresql 适配器错误

ruby-on-rails - bundle 安装失败(权限被拒绝@rb_sysopen)

ruby-on-rails - "bundle install"从 Rails 控制台系统命令发出时未创建 Gemfile.lock

ruby-on-rails - ActiveRecord destroy_all

ruby - 输出 Ruby 索引

ruby-on-rails-3 - 在端口 80 启动 webrick(mysql2 gem 问题)

Ruby:gem 安装在错误的目录中