Git Push to Rails Production给出响应你的Ruby版本是1.9.3,但你的Gemfile指定2.2.2当Ruby Version是2.2.2

时间:2015-12-13 20:44:23

标签: ruby-on-rails-4 rvm ubuntu-14.04 git-post-receive gem-bundler

我已经看到了这个错误,但我发现的解决方案都没有帮助解决问题。我正在Mac上本地开发一个rails应用程序,并在DigitalOcean上设置了一个Droplet来推送应用程序。我的Droplet正在运行Ubuntu 14,我正在使用Git post-receive hook进行部署。这是钩子:

public boolean containsDot(JTextArea answerField){
    return answerField.getText().contains(".");
}

这是我推送时得到的输出:

#!/bin/bash

GIT_DIR=/home/xxx/yyy_production
WORK_TREE=/home/xxx/yyy
export XXX_DATABASE_USER='xxx'
export XXX_DATABASE_PASSWORD='12345'

export RAILS_ENV=production
. ~/.bashrc

while read oldrev newrev ref
do
    if [[ $ref =~ .*/master$ ]];
    then
        echo "Master ref received.  Deploying master branch to production..."
        mkdir -p $WORK_TREE
        git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f
        mkdir -p $WORK_TREE/shared/pids $WORK_TREE/shared/sockets $WORK_TREE/shared/log

        # start deploy tasks
        cd $WORK_TREE
        bundle install
        rake db:create
        rake db:migrate
        rake assets:precompile
        sudo restart puma-manager
        sudo service nginx restart
        # end deploy tasks
        echo "Git hooks deploy complete"
    else
        echo "Ref $ref successfully received.  Doing nothing: only the master branch may be deployed on this server."
    fi
done

我根本不理解这一点,因为我已经安装了ruby 2.2.2并使用RVM选择它。当我使用ssh登录到Ubuntu机器时,我没有在运行的所有捆绑器上遇到任何错误。然而,当我使用我的钩子时,这就是它的作用。我已经和它斗争了好几天了。非常感谢任何帮助。

只是一些额外的信息:

Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 444 bytes | 0 bytes/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: Master ref received.  Deploying master branch to production...
remote: Your Ruby version is 1.9.3, but your Gemfile specified 2.2.2
remote: rake aborted!
remote: Bundler::RubyVersionMismatch: Your Ruby version is 1.9.3, but your Gemfile specified 2.2.2

编辑:按请求发布更多数据

的Gemfile

ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

rvm info

ruby-2.2.2:

  system:
    uname:       "Linux mgots-app-01 3.13.0-68-generic #111-Ubuntu SMP Fri Nov 6 18:17:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux"
    system:      "ubuntu/14.04/x86_64"
    bash:        "/bin/bash => GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.26.11 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "21 hours 6 minutes 30 seconds ago"
    path:         "/usr/share/rvm"

  ruby:
    interpreter:  "ruby"
    version:      "2.2.2p95"
    date:         "2015-04-13"
    platform:     "x86_64-linux"
    patchlevel:   "2015-04-13 revision 50295"
    full_version: "ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]"

  homes:
    gem:          "/home/xxx/.rvm/gems/ruby-2.2.2"
    ruby:         "/usr/share/rvm/rubies/ruby-2.2.2"

  binaries:
    ruby:         "/usr/share/rvm/rubies/ruby-2.2.2/bin/ruby"
    irb:          "/usr/share/rvm/rubies/ruby-2.2.2/bin/irb"
    gem:          "/usr/share/rvm/rubies/ruby-2.2.2/bin/gem"
    rake:         "/usr/share/rvm/rubies/ruby-2.2.2/bin/rake"

  environment:
    PATH:         "/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/usr/share/rvm/rubies/ruby-2.2.2/bin:/usr/share/rvm/bin:/home/carl/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/home/xxx/.rbenv/plugins/ruby-build/bin:/home/xxx/.rbenv/shims:/home/xxx/.rbenv/bin:/home/xxx/.rvm/gems/ruby-2.2.2/bin:/home/xxx/.rvm/gems/ruby-2.2.2@global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
    GEM_HOME:     "/home/xxx/.rvm/gems/ruby-2.2.2"
    GEM_PATH:     "/home/xxx/.rvm/gems/ruby-2.2.2:/home/xxx/.rvm/gems/ruby-2.2.2@global"
    MY_RUBY_HOME: "/usr/share/rvm/rubies/ruby-2.2.2"
    IRBRC:        "/usr/share/rvm/rubies/ruby-2.2.2/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

rvm list

source 'https://rubygems.org'
ruby "2.2.2"

gem 'rails',                                '4.2.2'
gem 'pg'
gem 'bootstrap-sass',               '3.3.5.1'
gem 'sass-rails',                   '~> 5.0'
gem 'uglifier',                         '>= 1.3.0'
gem 'coffee-rails',                 '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder',                         '~> 2.0'
gem 'font-awesome-rails'
gem 'sdoc',                                 '~> 0.4.0', group: :doc
gem 'bcrypt', '~> 3.1.7'
gem 'geocoder',                         '1.2.12'

group :development, :test do
  gem 'byebug'
  gem 'web-console',                    '~> 2.0'
    gem 'spring'
end

group :production do
  gem 'puma'
  gem 'therubyracer', platforms: :ruby
end

〜/ .bashrc中

rvm rubies

 * ruby-2.2.1 [ x86_64 ]
=> ruby-2.2.2 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

1 个答案:

答案 0 :(得分:2)

在您的Droplet和Mac上,移除Gemfile.lock,确保ruby -v以版本2.2响应,并执行bundle update

这些步骤应该重置所有内容。如果他们不能工作,请执行spring stop并重新安装bundler binstubs(如果您使用这些工具)。

祝你好运!