繁体   English   中英

Git推送到Heroku引发了Bundler错误

[英]Git pushing to Heroku raises a Bundler error

我试图让一个旧的Heroku应用程序运行,到目前为止失败了。 $ heroku stack返回

=== <app_name> Available Stacks
  bamboo-ree-1.8.7
  cedar
* bamboo-mri-1.9.2 (prepared, will migrate on next git push)

推送时,我得到以下内容:

$ git push heroku master
Counting objects: 48, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (31/31), done.
Writing objects: 100% (31/31), 4.00 KiB, done.
Total 31 (delta 18), reused 0 (delta 0)
-----> Ruby/Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Configure Rails 3 to disable x-sendfile
       Installing rails3_disable_x_sendfile... done
-----> Configure Rails to log to stdout
       Installing rails_log_stdout... done
-----> Gemfile detected, running Bundler version 1.0.7
       Unresolved dependencies detected; Installing...
       /tmp/build_3cljt2m8e8r7e/Gemfile:2:in `evaluate': undefined method `ruby' for #<Bundler::Dsl:0x00000003221778> (NoMethodError)
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/dsl.rb:7:in `instance_eval'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/dsl.rb:7:in `evaluate'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/definition.rb:17:in `build'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler.rb:128:in `definition'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start'
        from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/bin/bundle:13:in `<top (required)>'
        from /usr/ruby1.9.2/bin/bundle:19:in `load'
        from /usr/ruby1.9.2/bin/bundle:19:in `<main>'
       FAILED: http://devcenter.heroku.com/articles/bundler
 !     Heroku push rejected, failed to install gems via Bundler

To git@heroku.com:<app_name>.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:<app_name>.git'

当前的Gemfile:

source 'https://rubygems.org'
ruby '1.9.3'

gem 'bundler', '1.3.0.pre.8'
gem 'rails', '~> 3.2'
gem 'jquery-rails', '~> 2.2'
gem 'slim', '~> 1.3'
gem 'dynamic_form', '~> 1.0'
gem 'state_machine', '~> 1.1'
gem 'draper', '~> 1.1'
gem 'bcrypt-ruby', '~> 3.0', :require => 'bcrypt'
gem 'thin', '~> 1.5'
gem 'twitter-bootstrap-rails', '~> 2.2'

group :assets do
  gem 'sass-rails', '~> 3.2.3'
  gem 'less-rails', '~> 2.2'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'therubyracer', '~> 0.11', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
end

group :development do
  gem 'sqlite3', '~> 1.3'
  gem 'pry', '~> 0.9'
  gem 'better_errors', '~> 0.3'
  gem 'binding_of_caller', '~> 0.6'
end

group :production do
  gem 'pg', '~> 0.14'
end

Bundler似乎有一个问题,任何想法?

问题是由Gemfile的第2行引起的:

ruby '1.9.3'

从输出中我们可以看到Bundler运行的版本:

Gemfile detected, running Bundler version 1.0.7

但是ruby指令似乎是Bundler 1.2的功能,并且不适用于旧的Bundler。 我想你现在可以安全地删除这个ruby '1.9.3'系列。


当然,你gem 'bundler', '1.3.0.pre.8'中有gem'bundler gem 'bundler', '1.3.0.pre.8' 但这是鸡和蛋的问题:在解析Gemfile之前不会安装新的Bundler,但旧的Bundler无法解析它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM