尝试用ruby2.0.0-p 247在PartOS6.3上安装mysql2 gem。
这一切在ruby-1.9.3-p 324上都很好,但是使用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:inrequire”到/usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:60:inrescue 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要求‘from mysqltest.rb:1:in’
包安装/创业板安装mysql2运行良好,它只是尝试使用gem。我已经在googled上搜索过,常见的答案是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 2目录中,那么一切都可以正常工作。
我对Ruby相当陌生;我错过了什么?为什么创业板安装没有复制这个文件到正确的位置。
谢谢
安德鲁
发布于 2013-07-18 08:24:54
结果发现这是RVM中的一个bug,RVM安装了版本的RubyGems。您需要确保安装的RubyGems为2.x。对我来说不是这样,RVM要么根本没有安装RubyGems,要么没有安装正确的版本;我们最终从IRC上的RVM通道得到了一些帮助。
在我们谈话的背后,推特上还有一些细节。
发布于 2014-01-22 10:34:37
只是降低了mysql2版本的等级。在我的例子中,我使用了“0.2.6”版本,它对我起了作用。
gem 'mysql2', '0.2.6'红宝石版本2.0.0和gem版本1.8.25
https://stackoverflow.com/questions/17615327
复制相似问题