我想开始使用 Rails 3 和 Ruby 1.9,但如何仍然运行我的 Rails 2 应用程序?
我有一些生产 Rails 2 应用程序。我想开始使用 Rails 3 和 Ruby 1.9 来开发新的应用程序。
我正在使用 Passenger 和 Apache 以及 REE (Ruby 1.8.7)。我不提供任何东西——我在系统级别安装 gems 并在 environment.rb
中指定每个应用程序的版本。
如果理解正确的话,问题不在于 Rails 和其他 gem 版本(因为每个应用程序都可以在 environment.rb
中指定自己的版本),而是我的 Rails 2 应用程序及其 gem 是否会在以下环境下运行红宝石 1.9。
我有这个权利吗?
根据 Google 搜索,Searchlogic 和 Ruby 1.9 等某些 gem 实际上可能存在问题。
如果是这样,推荐的解决方案是什么?
我研究过 RVM,它看起来非常适合测试、实验和开发。但它看起来并不像是为生产设置提供帮助而设计的。
据我了解,当您安装 Passenger 时,您将针对一个特定版本的 Ruby 进行编译。 Ruby 可以在 RVM 下使用,没有问题,但 Passenger 不能为不同的应用程序使用不同的 Ruby。
I have some production Rails 2 apps. I want to start using Rails 3 and Ruby 1.9 for new apps I develop.
I'm using Passenger and Apache with REE (Ruby 1.8.7). I don't vendor anything -- I install gems on the system level and specify versions per app in environment.rb
.
If understand it right, the problem is not so much the Rails and other gem versions (because each app can specify their own in environment.rb
), but whether my Rails 2 apps and their gems will run under Ruby 1.9.
Do I have that right?
Based on Googling it appears that there may actually be a problem with some gems like Searchlogic and Ruby 1.9.
If so what would be the recommended solution?
I have looked into RVM and it looks fantastic for testing, experimentation, and development. But it doesn't look like it was designed help with a production setup.
As I understand it, when you install Passenger you compile it against one particular version of Ruby. That Ruby can be under RVM no problem, but Passenger can't use different Rubies for different apps.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 RVM(Ruby 版本管理器)。您可以在同一个盒子上管理多个 ruby 版本,并为每个版本管理多个宝石集。
http://beginrescueend.com/
此外,Bundler 允许项目维护自己的 gems 库(至少对我来说) ,无需使用 RVM gemset)
http://gembundler.com/
检查 Hongli Lai 的以下链接: Phusion 解释了如何使用 Passenger 独立和反向代理来设置 Passenger 在多个版本的 Ruby 上同时运行。
http://blog.phusion.nl/ 2010/09/21/phusion-passenger-running-multiple-ruby-versions/
Look into RVM (Ruby Version Manager). You can manage multiple ruby versions on the same box, and multiple gemsets for each.
http://beginrescueend.com/
Additionally, Bundler allows projects to maintain their own libraries of gems (and for me at least, obviates the need for using RVM gemsets)
http://gembundler.com/
Check the following link for Hongli Lai from Phusion explaining how to set up Passenger running on multiple versions of Ruby simultaneously by using Passenger standalone and reverse proxy.
http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/