【问题标题】:Ruby 2.1.0 on existing Heroku application现有 Heroku 应用程序上的 Ruby 2.1.0
【发布时间】:2014-01-18 06:25:36
【问题描述】:

在现有 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

有什么想法吗?

【问题讨论】:

  • 您的 ruby​​ 版本是否已在 Gemfile 中声明?类似于:source "rubygems.org" ruby​​ "1.9.3"
  • 在您的 GemFile 或其他任何东西中有任何依赖项吗?如果不是您能够在 ruby​​ 2.1.0 中使用新的 rails 应用程序,我会说这是版本不兼容错误,但显然不是
  • @hernanvicente 我已将 Gemfile 添加到问题中。
  • 根据这篇文章,ruby 2.1.0 应该可用devcenter.heroku.com/changelog-items/376 我正在寻找更多信息:D
  • @hernanvicente 并且它在我的旧应用程序上运行得非常好 - 它没有。当然,我在雪松堆栈上......

标签: ruby-on-rails ruby heroku ruby-2.1


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    根据错误消息,您似乎正在使用RUBY_VERSION 配置。从Bundler become the preferred methodspecify a Ruby version 之后的新版本不再支持此配置。

    您的Gemfile 似乎已为 Ruby 2.1.0 正确配置。只需删除变量以避免冲突

    $ heroku config:unset RUBY_VERSION
    

    您可以阅读 Heroku 支持文章

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

    【讨论】:

    • 未设置。我运行了命令以防万一,但没有任何改变。
    • 如果你运行heroku config 配置没有设置?你用的是什么栈?
    • 不,它没有设置。我在雪松栈上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    相关资源
    最近更新 更多