2012-01-25 92 views
12

安装宝石这是怎么看我的Gemfile不能推应用程序的Heroku - 无法通过捆扎机

source 'http://rubygems.org' 

gem 'rails', '3.1.2' 

#gem 'sqlite3' 
gem 'mysql2' 
gem "rvm", "~> 1.9.2" 
gem 'authlogic' 
gem "taps", "~> 0.3.23" 
gem "paperclip", "~> 2.4.5" 
gem 'aws-s3' 
gem 'actionmailer' 

gem 'will_paginate' 

group :assets do 
    gem 'sass-rails', '~> 3.1.5.rc.2' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

group :production do 
    gem 'therubyracer-heroku', '~> 0.8.1.pre3' 
    gem 'pg' 
end 

gem 'jquery-rails' 

,这是推动应用的Heroku输出:

Counting objects: 307, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (291/291), done. 
Writing objects: 100% (307/307), 491.60 KiB | 47 KiB/s, done. 
Total 307 (delta 43), reused 0 (delta 0) 

-----> Heroku receiving push 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.1.rc.7 
     Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 
     Fetching gem metadata from http://rubygems.org/....... 
     Installing rake (0.9.2.2) 
     Installing multi_json (1.0.4) 
     Installing activesupport (3.1.2) 
     Installing builder (3.0.0) 
     Installing i18n (0.6.0) 
     Installing activemodel (3.1.2) 
     Installing erubis (2.7.0) 
     Installing rack (1.3.6) 
     Installing rack-cache (1.1) 
     Installing rack-mount (0.8.3) 
     Installing rack-test (0.6.1) 
     Installing hike (1.2.1) 
     Installing tilt (1.3.3) 
     Installing sprockets (2.1.2) 
     Installing actionpack (3.1.2) 
     Installing mime-types (1.17.2) 
     Installing polyglot (0.3.3) 
     Installing treetop (1.4.10) 
     Installing mail (2.3.0) 
     Installing actionmailer (3.1.2) 
     Installing arel (2.2.1) 
     Installing tzinfo (0.3.31) 
     Installing activerecord (3.1.2) 
     Installing activeresource (3.1.2) 
     Installing authlogic (3.1.0) 
     Installing xml-simple (1.1.1) 
     Installing aws-s3 (0.6.2) 
     Installing cocaine (0.2.1) 
     Installing coffee-script-source (1.2.0) 
     Installing execjs (1.3.0) 
     Installing coffee-script (2.2.0) 
     Installing rack-ssl (1.3.2) 
     Installing json (1.6.5) with native extensions 
     Installing rdoc (3.12) 
     Installing thor (0.14.6) 
     Installing railties (3.1.2) 
     Installing coffee-rails (3.1.1) 
     Installing jquery-rails (1.0.19) 
     Installing mysql2 (0.3.11) with native extensions 
     Installing paperclip (2.4.5) 
     Installing pg (0.12.2) with native extensions 
     Using bundler (1.1.rc.7) 
     Installing rails (3.1.2) 
     Installing rest-client (1.6.7) 
     Installing rvm (1.9.2) 
     Installing sass (3.1.12) 
     Installing sass-rails (3.1.5) 
     Installing sequel (3.20.0) 
     Installing sinatra (1.0) 
     Installing sqlite3 (1.3.5) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks! 
     /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 
     /usr/local/bin/ruby extconf.rb 
     checking for sqlite3.h... no 
     sqlite3.h is missing. Try 'port install sqlite3 +universal' 
     or 'yum install sqlite-devel' and check your shared library search path (the 
     location where your sqlite3 shared library is located). 
     *** extconf.rb failed *** 
     Could not create Makefile due to some reason, probably lack of 
     necessary libraries and/or headers. Check the mkmf.log file for more 
     details. You may need configuration options. 
     Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=/usr/local/bin/ruby 
     --with-sqlite3-dir 
     --without-sqlite3-dir 
     --with-sqlite3-include 
     --without-sqlite3-include=${sqlite3-dir}/include 
     --with-sqlite3-lib 
     --without-sqlite3-lib=${sqlite3-dir}/lib 
     --enable-local 
     --disable-local 
     Gem files will remain installed in /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection. 
     Results logged to /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions' 
     from /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/source.rb:90:in `block in install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/rubygems_integration.rb:82:in `preserve_paths' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/source.rb:89:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:73:in `block in install_gem_from_spec' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/rubygems_integration.rb:97:in `with_build_args' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:72:in `install_gem_from_spec' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:56:in `block in run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:55:in `run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/installer.rb:12:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/cli.rb:220:in `install' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/task.rb:22:in `run' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor.rb:263:in `dispatch' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/lib/bundler/vendor/thor/base.rb:386:in `start' 
     from /tmp/build_14aejbvbx900f/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc.7/bin/bundle:13:in `<top (required)>' 
     from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `load' 
     from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `<main>' 
! 
!  Failed to install gems via Bundler. 
!  
!  Detected sqlite3 gem which is not supported on Heroku. 
!  http://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

To [email protected]:_my_repo_.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:_my_repo_.git' 

什么是错的?我有相同的一组在我的其他应用程序,它工作得很好......我多感谢每一个帮助,这个问题整个下午挣扎......

编辑:我也试着删除服务器并创建一个新的,但仍然是一样的。

+0

它看起来像试图安装SQLite宝石。你确定它在Gemfile中被推荐到Heroku吗? – mipadi

+0

我绝对确定。 – user984621

+0

您是否在将它注释掉后重新创建Gemfile.lock文件? – mipadi

回答

9

于是,经过与Heroku的suporters一点讲, “问题” 是taps宝石 - sqlite3的有一个联想到它。工作的解决方案是:

group :development do 
    gem 'taps' 
    gem 'rvm' 
end 
+0

为我工作 - 非常感谢你! – eckza

+0

很高兴帮助你:) – user984621

1

您需要在项目文件夹的命令行中输入bundle

这会更新你的Gemfile.lock文件 - 你需要提交这个和Gemfile然后重新编译到Heroku。

+0

我已经尝试过它,仍然是同样的错误。我尝试了'bundle','bundle install','bundle update',但是当我尝试将应用程序部署到Heroku时仍然出现同样的错误 – user984621

+0

仔细检查你的git状态的输出以确保你没有你的文件在推送到Heroku之前,没有添加并致力于git。 –

+0

当我输入'git status',所以结果是'#分支主人 没有提交(工作目录干净)' - 没有东西从这里读取 – user984621

2

您是否将Gemfile添加到工作副本并将其提交到本地存储库?也许你正在推送旧版本的Gemfile和Gemfile.lock?

+0

我试图删除现在一个'Gemfile.lock',运行'捆绑安装',Gemfile.lock被创建,当我试图推送应用程序到Heroku时,同样的错误... – user984621

+1

你执行过“git add Gemfile”和“git commit”吗? –

+0

是的,'git add gemfile' - >'git commit' - >'#分支主人 没有提交(工作目录干净)' – user984621

27

只要把你的sqlite3下的文字/开发组中的Gemfile,在生产的Gemfile组还加入thinpg

  1. 编辑Gemfile类似以下内容:

    gem 'sqlite3', :group => [:development, :test] 
    group :production do 
        gem 'thin' 
        gem 'pg' 
    end 
    
  2. 删除Gemfile.lock

  3. 运行bundle install --without production
  4. git add .
  5. git commit -am "bundle updating sqlite3"
  6. git push heroku +master
+0

我现在尝试了两种变体,您正在编写...并仍然相同。 – user984621

+0

你是怎么捆绑的?查看更新... –

+2

删除Gemfile.lock是这里的关键。它为我工作。 – Edwin

2

在Gemfile中的下一个替换 '宝石的sqlite3':

group :development do 
gem 'sqlite3' 
end 
gem 'pg' 
5

如果更改的Gemfile不要忘记

git add . 
git commint -m"ufff" 

然后

git push heroku master 
0

我有一个略微独特的情况与宝石'邮件捕捉器'离子。

我已经为所有环境安装了gem,但是我意识到它的一个依赖关系是sqlite3。我将mailcatcher gem移至开发组,并解决了我的问题。

相关问题