2012-10-13 71 views
2

我正在嘗試將我的應用程序部署到Heroku,但它一直被以下輸出拒絕。Heroku安裝sqlite3即使它不是依賴關係

waitup$git push staging master 
Counting objects: 4184, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (1033/1033), done. 
Writing objects: 100% (4184/4184), 1.11 MiB | 494 KiB/s, done. 
Total 4184 (delta 3069), reused 4184 (delta 3069) 

-----> Heroku receiving push 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.2.1 
     Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 
     Fetching gem metadata from http://rubygems.org/....... 
     Fetching https://github.com/stripe/stripe-ruby 
     Installing rake (0.8.7) 
     Installing abstract (1.0.0) 
     Installing activesupport (3.0.4) 
     Installing builder (2.1.2) 
     Installing i18n (0.5.0) 
     Installing activemodel (3.0.4) 
     Installing erubis (2.6.6) 
     Installing rack (1.2.2) 
     Installing rack-mount (0.6.14) 
     Installing rack-test (0.5.7) 
     Installing tzinfo (0.3.27) 
     Installing actionpack (3.0.4) 
     Installing mime-types (1.16) 
     Installing polyglot (0.3.1) 
     Installing treetop (1.4.9) 
     Installing mail (2.2.19) 
     Installing actionmailer (3.0.4) 
     Installing bcrypt-ruby (2.1.4) with native extensions 
     Installing orm_adapter (0.0.5) 
     Installing warden (1.0.4) 
     Installing devise (1.3.4) 
     Installing formtastic (1.2.3) 
     Installing has_scope (0.5.0) 
     Installing responders (0.6.4) 
     Installing inherited_resources (1.2.2) 
     Installing will_paginate (3.0.pre2) 
     Installing inherited_views (0.0.2) 
     Installing arel (2.0.9) 
     Installing activerecord (3.0.4) 
     Installing meta_search (1.0.5) 
     Installing activeresource (3.0.4) 
     Using bundler (1.2.1) 
     Installing thor (0.14.6) 
     Installing railties (3.0.4) 
     Installing rails (3.0.4) 
     Installing sass (3.1.2) 
     Installing activeadmin (0.2.2) 
     Installing addressable (2.2.6) 
     Installing authlogic (2.1.6) 
     Installing celerity (0.8.8) 
     Installing culerity (0.2.15) 
     Installing nokogiri (1.4.4) with native extensions 
     Installing ffi (0.6.3) with native extensions 
     Installing childprocess (0.1.7) 
     Installing json_pure (1.5.1) 
     Installing rubyzip (0.9.4) 
     Installing selenium-webdriver (0.1.3) 
     Installing xpath (0.1.3) 
     Installing capybara (0.4.1.2) 
     Installing configuration (1.2.0) 
     Installing cookiejar (0.3.0) 
     Installing diff-lcs (1.1.2) 
     Installing json (1.5.1) with native extensions 
     Installing gherkin (2.3.7) with native extensions 
     Installing term-ansicolor (1.0.5) 
     Installing cucumber (0.10.2) 
     Installing cucumber-rails (0.3.1) 
     Installing daemons (1.1.6) 
     Installing database_cleaner (0.6.4) 
     Installing hiredis (0.3.2) with native extensions 
     Installing em-hiredis (0.1.0) 
     Installing escape_utils (0.2.4) with native extensions 
     Installing eventmachine (0.12.10) with native extensions 
     Installing em-http-request (0.3.0) with native extensions 
     Installing thin (1.3.1) with native extensions 
     Installing faye (0.7.1) 
     Installing launchy (0.4.0) 
     Installing rest-client (1.6.3) 
     Installing heroku (2.2.8) 
     Installing jquery-rails (1.0.7) 
     Installing jwt (0.1.3) 
     Installing multi_json (1.0.3) 
     Installing mysql2 (0.2.7) with native extensions 
     Installing rspec-core (2.5.1) 
     Installing rspec-expectations (2.5.0) 
     Installing rspec-mocks (2.5.0) 
     Installing rspec (2.5.0) 
     Installing rspec-rails (2.5.0) 
     Installing seed-fu (2.0.1) 
     Installing sequel (3.20.0) 
     Installing sinatra (1.0) 
     Installing spork (0.8.4) with native extensions 
     Installing sqlite3 (1.3.4) with native extensions 
     Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 
     /usr/local/bin/ruby extconf.rb 
     checking for sqlite3.h... no 
     sqlite3.h is missing. Try 'port install sqlite3 +universal' 
     or 'yum install sqlite3-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_qlnbqtp08z3t/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4 for inspection. 
     Results logged to /tmp/build_qlnbqtp08z3t/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out 
     An error occurred while installing sqlite3 (1.3.4), and Bundler cannot continue. 
     Make sure that `gem install sqlite3 -v '1.3.4'` succeeds before bundling. 
! 
!  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]:waiterd2-staging.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:waiterd2-staging.git' 

顯然,sqlite3寶石是這裏的問題。奇怪的部分是它沒有被包含在我的Gemfile或Gemfile.lock中。

我的Gemfile看起來是這樣的:

source 'http://rubygems.org' 

gem 'rails', '3.1.0' 

gem 'pg' 
gem 'thin' 
gem 'authlogic', '3.1.3' 
gem 'twilio-ruby' 
gem 'heroku' 
gem 'activeadmin', :git => 'https://github.com/gregbell/active_admin.git' 
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby' 
gem 'faye' 

group :assets do 
    gem 'less' 
    gem 'bourbon' 
    gem 'therubyracer' 
    gem 'sass-rails' 
    gem 'coffee-rails' 
    gem 'uglifier' 
end 

有幾件事情中脫穎而出這裏。 Heroku安裝的authlogic gem不是Gemfile中指定的。我懷疑authlogic gem的唯一原因是因爲它將sqlite3列爲開發依賴項。儘管如此,這應該不重要。

當我在本地機器上運行Heroku輸出中列出的確切命令時,sqlite3 gem未安裝。

我已經嘗試了很多建議,我發現在StackOverflow和其他地方,如刪除Gemfile.lock文件和再次運行打捆機。這些都沒有奏效。 Heroku仍會安裝錯誤版本的authlogic並嘗試安裝sqlite3。

如何讓Heroku停止嘗試安裝sqlite3 gem?

非常感謝您的幫助!

+0

Rails 3依賴於SQLite。 –

+1

你可以發佈你的'Gemfile.lock'嗎? @MaurícioLinharesRails 3默認爲新項目使用SQLite,但它通過將其添加到'Gemfile'中來實現。通過指定'gem'rails'',SQLite和任何其他數據庫適配器都不會自動添加到依賴關係圖中。 – willglynn

+0

你是否在推動正確的分支?你的Gemfile指定了'gem'rails','3.1.0'(反正它應該是[3.1.8](https://github.com/rails/rails/compare/v3.1.0...v3.1.8) ),但Bundler正在看到'rails(3.0.4)'。 – willglynn

回答

0

問題原來很簡單。我把錯誤的分支推給了Heroku,所以我在解決這個問題上的嘗試顯然是無效的。