我正在使用Rails 3.2.9和Ruby 1.9.3-p327。
在我的服务器上部署“capistrano”后,我无法初始化我的Rails应用程序,因为它会导致错误导致Rails和Ruby解释器崩溃。
没有任何明确的错误消息我必须依赖回溯,控制帧和内存转储。所以很难调试并找出错误来自哪里。在这里张贴它太长了。
在部署期间,我不得不在我的 config / application.rb 文件中设置它,以使deploy:asset:precompile任务通过,否则我陷入了红宝石崩溃:< / p>
config.assets.initialize_on_precompile = false
部署之后,我刚刚运行了一个rake db:reset来测试从我的应用程序访问数据库,但是这会导致崩溃,所以我测试了从控制台访问我的数据库以及“new-Rails-app-direct-创建最服务器上”。一切都在这方面运作良好(创建数据库,并授予访问权限)。所以我排除了来自database.yml或postgres数据库设置的任何问题。
此外,经过一段很长的搜索(我在这个问题上花了整整一周),我设法找到了问题来自Rails Initialization。
更具体地说,我的config / application.rb中的这些行导致了Rails和Ruby的崩溃。
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
我尝试了两个选项,它们都使应用程序崩溃。我也试着评论它们,但其他东西使得Rails和Ruby在应用程序之后的某个地方崩溃.Rb读取了它。
我怀疑与bundler和gem资产管道有关的东西。 如果我运行 gem list 命令,我可以看到我的服务器上安装了多个版本的bundler:
bundler (1.2.1, 1.1.4, 1.1.3)
如果我运行一个rvm gemset列表,我看到默认的gemset正在使用中,并且没有其他任何内容:
gemset for ruby-1.9.3-p327 (found in /usr/local/rvm/ruby-1.9.3-p327
=> (default)
global
我不知道如何确保Rake / Rails使用这个gemset和这个版本的ruby?
此外,如果我以root身份连接; 捆绑安装将导致以下错误:
ERROR: Gem bundler is not installed, run `gem install bundler` first
如果以用户身份连接,它将起作用。
请注意,rvm已在系统范围内安装“sudo”。
我的其他宝石由捆绑器管理并存储到: 的的/ var / WWW / OPF /共享/捆/红宝石/
我的Gemfile:
source 'https://rubygems.org'
gem 'rails', '~>3.2'
gem 'pg', '>= 0.14'
gem 'haml-rails', '~> 0.3'
group :developpement do
gem 'rspec-rails', '>= 2.11'
gem 'capistrano', '>= 2.12'
gem 'faker', '>= 1.0'
gem 'rvm-capistrano'
end
group :test do
gem 'rspec', '>= 2.11'
gem 'webrat', '>= 0.7'
gem 'spork-rails', '>= 3.2'
gem 'factory_girl_rails', '>= 4.0'
end
group :assets do
gem 'sass-rails', '>= 3.2.3'
gem 'coffee-rails', '>= 3.2.1'
gem 'compass-rails', '>= 1.0'
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'annotate'
gem 'excel_rails', '~> 0.3'
gem 'spreadsheet', '~> 0.7'
gem 'schema_plus', '~> 0.4'
gem 'ar-octopus', '~> 0.3'
gem 'squeel', '~> 1.0'
gem 'devise', '~> 2.1'
gem 'role_model'
gem 'declarative_authorization'
gem 'rails-translate-routes', '~> 0.1'