将Ruby版本与MySql客户端混合时出现问题

将Ruby版本与MySql客户端混合时出现问题,mysql,ruby-on-rails-3,ruby-on-rails-3.2,rvm,ubuntu-10.04,Mysql,Ruby On Rails 3,Ruby On Rails 3.2,Rvm,Ubuntu 10.04,我的基本堆栈设置是Ubuntu10.04Lucid,带有Apache2和Rails3.x(见下文)。它还使用一个在专用服务器上运行的MySQL数据库,所以我只需要Rails服务器上的MySQL客户端,我使用的是mysql2 gem 我正在将一个Rails应用程序从Rails 3.0升级到Rails 3.2,一切都进行得相当顺利(一些代码更改和一些资产重组),只是我需要将mail gem从Ruby 1.8.7升级到更高版本 我想我应该跳过Ruby 1.9.3,直接跳到Ruby 2.0.0 我也在咬

我的基本堆栈设置是Ubuntu10.04Lucid,带有Apache2和Rails3.x(见下文)。它还使用一个在专用服务器上运行的MySQL数据库,所以我只需要Rails服务器上的MySQL客户端,我使用的是mysql2 gem

我正在将一个Rails应用程序从Rails 3.0升级到Rails 3.2,一切都进行得相当顺利(一些代码更改和一些资产重组),只是我需要将mail gem从Ruby 1.8.7升级到更高版本

我想我应该跳过Ruby 1.9.3,直接跳到Ruby 2.0.0

我也在咬紧牙关,采用rvm来管理ruby环境,并且正在更新到Passenger 4,因为它说rvm可以更好地发挥作用,还因为我有另一个Rails应用程序,我想暂时在ruby 1.8.7上留下

一切都进行得相当顺利-在安装过程中,所有的东西似乎都安装正确

我在应用程序目录层次结构的顶部添加了一个.ruby版本文件(指定为2.0.0),这似乎很有效

我在同一个目录中还有.ruby gemset,指定了一个应用程序名,并且我已经使用bundle install安装了必要的gems

但是,当我重新启动Apache并尝试访问Rails应用程序时,乘客在返回的网页上报告了一个错误

Web application could not be started

/home/username/.rvm/gems/ruby-2.0.0-p481@myapp/gems/mysql2-0.3.16/lib/mysql2/mysql2.so: [BUG] Segmentation fault ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
Rails应用程序(或Passenger)似乎正确地选择了rvm环境,但随后使用了不兼容的mysql2版本,该版本具有Ruby 1.8.7依赖性

我试过很多方法来解决这个问题

  • 卸下并重新安装mysql2 gem
  • 使用sudo apt get install libmysqlclient dev删除并重新安装mysql客户端包 libmysql-ruby
  • 尝试相同的更改,但使用Ruby 1.9.3而不是2.0.0
理想情况下,我想让mysql2同时支持Ruby 1.8.7和2.0.0应用程序,但我也愿意让mysql2与更高版本的Ruby一起使用


感谢您的建议。

您应该在应用程序的虚拟主机中设置写入的
PassengerRuby

您是否在应用程序的虚拟主机中设置写入的
PassengerRuby