5

在现有的 Heroku 应用程序上将 Ruby 版本设置为 2.1.0 时,我遇到了非常奇怪的问题。尝试部署时,出现此错误:

 !     Invalid RUBY_VERSION specified: ruby-2.1.0
 !     Valid versions: ruby-2.0.0, ruby-1.9.3, ruby-1.9.2, ruby-1.8.7, ruby-1.9.3-jruby-1.7.0, ruby-1.8.7-jruby-1.7.0, ruby-1.9.3-jruby-1.7.1, ruby-1.8.7-jruby-1.7.1, ruby-1.9.3-rbx-2.0.0dev, ruby-1.8.7-rbx-2.0.0dev

在部署到 Heroku 的新 Rails 应用程序上,新的 Ruby 版本没有问题。

我的宝石文件:

source 'https://rubygems.org'

ruby '2.1.0'

gem 'rails',                        '~> 3.2.14'
gem 'pg'
gem 'unicorn'
gem 'pry'

gem 'active_model_serializers'
gem 'activeadmin'
gem 'activerecord-postgres-hstore'
gem 'acts-as-taggable-on',          git: 'git://github.com/mbleigh/acts-as-taggable-on.git'
gem 'addressable',                  '~> 2.3.2', require: 'addressable/uri'
gem 'airbrake'
gem 'alchemy-api-rb',               :require => ['alchemy_api', 'excon']
gem 'bcrypt-ruby',                  '~> 3.0.1'
gem 'browser'
gem 'cancan'
gem 'ckeditor',                     '= 4.0.2'
gem 'dalli'
gem 'filepicker-rails',             git: 'https://github.com/limonka/filepicker-rails.git'
gem 'geocoder'
gem 'google_places'
gem 'google_places_autocomplete'
gem 'haml',                         '~> 3.1.6'
gem 'haml-rails',                   '~> 0.3.4'
gem 'heroku-api'
gem 'kaminari'
gem 'koala',                        '= 1.5.0'
gem 'memcachier'
gem 'metainspector',                '~> 1.15.3'
gem 'newrelic_rpm'
gem 'jbuilder',                     '1.2.0'
gem 'paper_trail'
gem 'paperclip'
gem 'pusher'
gem 'rack-cache',                   require: 'rack/cache'
gem 'rack-mini-profiler'
gem 'recaptcha',                    require: 'recaptcha/rails'
gem 'rest-client'
# FIXME: Make sure that the bug with sidekiq-failures has been fixed: https://github.com/mhfs/sidekiq-failures/pull/49
gem 'sidekiq',                      '= 2.15.2'
gem 'sidekiq-failures'
gem 'simple_form',                  '~> 2.0.1'
gem 'sinatra',                      '~> 1.3.0', require: false
gem 'slim',                         '~> 1.3.8'
gem 'sorcery'
gem 'sunspot_rails',                '= 2.0.0'
gem 'sunspot_solr',                 '= 2.0.0'
gem 'state_machine'
gem 'uglifier',                     '~> 1.2.3'
gem 'yajl-ruby'
gem 'rack-cors',                    require: 'rack/cors'
gem 'rubyzip',                      '~> 0.9.9'
gem 'paper_trail'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'asset_sync'
  gem 'fog',                       '~> 1.11.1'
  gem 'compass',                   '= 0.12.2'
  gem 'compass-rails',             '~> 1.0.1'
  gem 'compass_twitter_bootstrap', git: 'https://github.com/vwall/compass-twitter-bootstrap.git', ref: '1a7b5ce5'
  gem 'coffee-rails',              '~> 3.2.1'
  gem 'handlebars_assets',         '~> 0.6.6'
  gem 'jquery-rails',              '~> 2.1.4'
  gem 'sass-rails'
  gem 'coffee-script-source',      '~> 1.6.2'
  gem 'turbo-sprockets-rails3'
end

group :test, :development do
  gem 'capybara'
  gem 'database_cleaner',           '~> 0.7.2'
  gem 'factory_girl'
  gem 'faker'
  gem 'jasminerice',                git: 'git://github.com/bradphelan/jasminerice.git'
  gem 'minitest',                   '~> 4.0'
  gem 'launchy'
  gem 'localtunnel'
  gem 'pusher-fake',                '= 0.9.0'
  gem 'ruby-prof'
  gem 'selenium-webdriver',         '~> 2.34.0'
  gem 'webmock',                    '~> 1.10.2', require: false
  gem 'mocha',                      require: false
end

group :development do
  gem 'bullet'
  gem 'foreman'
  gem 'growl'
  gem 'hirb'
  gem "letter_opener"
  gem 'mailcatcher'
  gem 'powder'
  gem 'thin'
  gem 'wirble'
  gem 'yaml_db'
end

有任何想法吗?

4

2 回答 2

7

我怀疑您可能正在运行自定义构建包 - 检查 BUILDPACK_URL 配置变量中的任何内容。

于 2014-01-07T15:32:13.510 回答
0

根据错误消息,您似乎正在使用该RUBY_VERSION配置。由于Bundler 成为指定 Ruby 版本的首选方法,因此新版本不再支持此配置。

看起来您Gemfile已为 Ruby 2.1.0 正确配置。只需删除变量以避免冲突

$ heroku config:unset RUBY_VERSION

从 Heroku 支持文章中,您可以阅读

如果您之前使用 RUBY_VERSION 选择 Ruby 版本,请按照上面的说明使用 Bundler 指定所需的 Ruby 版本。

于 2013-12-31T11:45:58.663 回答