Unicorn对我的机架版不满意?

时间:2014-01-01 03:16:22

标签: ruby-on-rails deployment mongoid unicorn digital-ocean

我几周来一直在重复这个教程: https://www.digitalocean.com/community/articles/how-to-1-click-install-ruby-on-rails-on-ubuntu-12-10-with-digitalocean

以下是我项目的具体内容: 我使用Mongoid和database.yml生成设置为运行MongoDB的经过测试和运行的Droplet(DigitalOcean VPS)。

我的宝石文件在这里,我是Rails的新手,并且我不确定它是否设置正确,所以我只是将它们全部移到资产中,希望Unicorn可以为我提供这些宝石?

source 'https://rubygems.org'

gem 'rails', '3.2.14'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  gem "therubyracer"
  gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
  gem "twitter-bootstrap-rails"
  gem 'redcarpet', '1.17.2'
  gem 'uglifier', '>= 1.0.3'


        gem "will_paginate_mongoid"
        gem 'will_paginate', '~> 3.0.5'
        gem 'will_paginate-bootstrap'

        gem 'devise'

        gem 'jquery-rails'



        gem "mongoid", "~> 3.0.0"
end

这是我做的: 我使用了DigitalOcean的1点击安装程序。然后我使用FileZilla将SFTP转换为他们提供给我的凭据。我删除了/ home / rails中的所有文件,并将我的新文件放入我的项目中。然后我执行了bundle install,并重新启动了unicorn服务。在教程中我看到我可以跟踪独角兽的日志,所以我执行了这个:tail -f /home/unicorn/log/unicorn.log

以下是关于我的输出:

/usr/local/rvm/gems/ruby-2.0.0-p353/gems/bundler-1.3.5/lib/bundler/runtime.rb:33:in `block in setup': You have already activated rack 1.5.2, but your Gemfile requires rack 1.4.5. Using bundle exec may solve this. (Gem::LoadError)

我看到了其他一些解决方案,都失败了。以下是我尝试的解决方案: 删除我的Gemfile.lock,并重新捆绑安装它。进入文件并删除它所说的机架。运行bundle install --binstubs。使用bundle exec重新启动unicorn服务。错误保持不变。

我之前有过很多不同的错误,但我觉得这是我最接近的错误。如果有人可以向我解释这个问题(我是Rails的新手并且希望得到彻底的解释),并且可能帮助我修复那些奇妙的错误并结束这种挫败感。

3 个答案:

答案 0 :(得分:1)

只是猜测

gem "rack", "~> 1.4.5" 

可能会为你工作,然后当然是bundle install

答案 1 :(得分:1)

这解决了这个问题:

gem uninstall rack -v 1.5.2

答案 2 :(得分:0)

可能从DigitalOcean控制面板重新加载您的Ubuntu安装,然后尝试使用Apache和Passenger安装Ruby on Rails?

Install RoR

Install Passenger (skip to passenger installation)

首次使用rails new创建网站时会出现错误,因为如果您希望使用MongoDB,它会尝试使用SQL,如果您希望使用MongoDB