我有一个运行旧版本 Rails (2.2.2) 和 Passenger 的应用程序,我使用 Ruby Enterprise Edition 1.8.7 启动并运行。然而,我很快发现旧版本的 Rails 和 Ruby 1.8.7 之间存在一些不兼容,并决定降级到 REE 1.8.6。但是,现在应用程序无法以以下方式启动LoadError
:
no such file to load -- bundler
我假设某些路径设置不正确,但我不确定在哪里看。有什么建议么?
我有一个运行旧版本 Rails (2.2.2) 和 Passenger 的应用程序,我使用 Ruby Enterprise Edition 1.8.7 启动并运行。然而,我很快发现旧版本的 Rails 和 Ruby 1.8.7 之间存在一些不兼容,并决定降级到 REE 1.8.6。但是,现在应用程序无法以以下方式启动LoadError
:
no such file to load -- bundler
我假设某些路径设置不正确,但我不确定在哪里看。有什么建议么?
在把我的头撞在墙上之后,我意识到这是因为 /opt/ruby-enterprise-... 中的文件不是组可读的(所以我认为运行 Apache 的用户没有访问权限)。
我有同样的错误,但有不同的解决方案。
在我的 deploy.rb 文件中有一个块,如:
set :default_environment, {
'PATH' => "/usr/local/rvm/gems/ruby-1.9.2-p0/bin:/usr/local/rvm/rubies/ruby-1.9.2-p0//bin:$PATH",
'RUBY_VERSION' => 'ruby 1.9.2',
'GEM_HOME' => '/usr/local/rvm/gems/ruby-1.9.2-p0',
'GEM_PATH' => '/usr/local/rvm/gems/ruby-1.9.2-p0',
'BUNDLE_PATH' => '/usr/local/rvm/gems/ruby-1.9.2-p0' # If you are using bundler.
}
我将这些路径指向新安装的 ruby(在服务器上),并且它有效。