我刚刚关注这些方向 https://rvm.beginrescueend.com/integration/passenger用于在我的本地计算机上安装新的 rvm gemset 并安装rails-3.1.0.rc2。起初我收到一个 Passenger 错误,说无法加载 rake-0.9.2 gem,但我发现this https://rvm.beginrescueend.com/integration/passenger提醒我运行“$passenger-install-apache2-module”。它安装得很好,提示我将以下内容添加到我的 Apache 配置文件 (/etc/apache2/httpd.conf) 中:
LoadModule passenger_module /Users/robs/.rvm/gems/[email protected] /cdn-cgi/l/email-protection/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /Users/robs/.rvm/gems/[email protected] /cdn-cgi/l/email-protection/gems/passenger-3.0.7
PassengerRuby /Users/robs/.rvm/wrappers/[email protected] /cdn-cgi/l/email-protection/ruby
然而,已经有来自不同宝石集的三行:
LoadModule passenger_module /Users/robs/.rvm/gems/[email protected] /cdn-cgi/l/email-protection/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /Users/robs/.rvm/gems/[email protected] /cdn-cgi/l/email-protection/gems/passenger-3.0.7
PassengerRuby /Users/robs/.rvm/wrappers/[email protected] /cdn-cgi/l/email-protection/ruby
如果我将两组行都保留为未注释(@rails-3.1 gemset 是最后一个),然后重新启动 Apache,我的 Rails 3.0 应用程序将无法启动。我发现自己必须注释掉 Rails 3.1 gemset 行,重新启动 Apache,然后运行“$ rvm use[电子邮件受保护] /cdn-cgi/l/email-protection如果我想运行Rails 3.1应用程序,我必须做相反的事情。
有没有办法让两者能够同时运行而无需这些额外的步骤?
您可以告诉 Passenger 在没有 gemset 的情况下使用 ruby 1.9.2,然后在每个应用程序中运行 rvm 使用 ruby-1.9.2-p180 并捆绑安装。这意味着您的基础 ruby-1.9.2-p180 将拥有两个应用程序的 gem,并且捆绑器应该处理限制您的应用程序可用的 gem。
最终结果:
- ruby-1.9.2-p180 为这两个应用程序提供了 gem
-
[电子邮件受保护] /cdn-cgi/l/email-protection为您的 3.0 应用程序提供宝石
-
[电子邮件受保护] /cdn-cgi/l/email-protection为您的 3.1 应用程序提供宝石
- 乘客正在使用 ruby-1.9.2-p180
- 捆绑程序仍应限制每个应用程序可用的 gem
- 两个应用程序都应该可以工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)