2013-03-21 161 views
5

我在使用命令git push heroku master時出現此錯誤。安裝sqlite3(1.3.7)時發生錯誤,並且Bundler無法繼續

$ git push heroku master 
Counting objects: 126, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (110/110), done. 
Writing objects: 100% (126/126), 36.61 KiB, done. 
Total 126 (delta 19), reused 0 (delta 0) 

-----> Removing .DS_Store files 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.3.2 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
     Fetching gem metadata from https://rubygems.org/......... 
     Fetching gem metadata from https://rubygems.org/.. 
     Installing rake (10.0.3) 
     Installing i18n (0.6.4) 
     Installing multi_json (1.6.1) 
     Installing activesupport (3.2.12) 
     Installing builder (3.0.4) 
     Installing activemodel (3.2.12) 
     Installing erubis (2.7.0) 
     Installing journey (1.0.4) 
     Installing rack (1.4.5) 
     Installing rack-cache (1.2) 
     Installing rack-test (0.6.2) 
     Installing hike (1.2.1) 
     Installing tilt (1.3.5) 
     Installing sprockets (2.2.2) 
     Installing actionpack (3.2.12) 
     Installing mime-types (1.21) 
     Installing polyglot (0.3.3) 
     Installing treetop (1.4.12) 
     Installing mail (2.4.4) 
     Installing actionmailer (3.2.12) 
     Installing arel (3.0.2) 
     Installing tzinfo (0.3.37) 
     Installing activerecord (3.2.12) 
     Installing activeresource (3.2.12) 
     Installing coffee-script-source (1.6.1) 
     Installing execjs (1.4.0) 
     Installing coffee-script (2.2.0) 
     Installing rack-ssl (1.3.3) 
     Installing json (1.7.7) 
     Installing rdoc (3.12.2) 
     Installing thor (0.17.0) 
     Installing railties (3.2.12) 
     Installing coffee-rails (3.2.2) 
     Installing jquery-rails (2.2.1) 
     Using bundler (1.3.2) 
     Installing rails (3.2.12) 
     Installing sass (3.2.7) 
     Installing sass-rails (3.2.6) 
     Installing sqlite3 (1.3.7) 
     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 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_19fmy6g68v7he/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.7 for inspection. 
     Results logged to /tmp/build_19fmy6g68v7he/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out 
     An error occurred whenter code hereile installing sqlite3 (1.3.7), and Bundler cannot continue. 
     Make sure that `gem install sqlite3 -v '1.3.7'` succeeds before bundling. 
! 
!  Failed to install gems via Bundler. 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

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

已經有相當多的類似問題。請再次詢問後再搜索。如果他們不能解決您的問題,請提供您嘗試過的內容的其他信息。 – 2013-03-21 14:50:01

+0

我經歷了大部分的論壇,但無法解決問題....我已經在我的系統上安裝了sqlite3。 @holger只是 – dummy 2013-03-21 14:51:22

+0

試圖在終端git的地位,它給了我這個#分支主要致力於 #的變化: #(使用「git的重置頭 ...」來unstage) # #\t修改:.DS_Store – dummy 2013-03-21 14:54:38

回答

1

的Heroku一般不支持SQLite作爲數據庫引擎,主要是因爲他們不給運行時到本地文件系統中的應用程序寫訪問的將需要的SQLite。

取而代之,您應該使用PostgreSQL(與pg gem)作爲Heroku推薦的數據庫引擎。

+0

如何做到這一點....它會看起來像一個愚蠢的問題,但我是新的發展。所以需要幫助。先謝謝@holger – dummy 2013-03-21 17:48:06

+0

我刪除了sqlite3,只是用'pg',但是當我推送時我還是得到了確保'gem install sqlite3 -v'1.3.7''在捆綁之前成功了。 – JGallardo 2013-06-13 01:30:37

+0

然後你仍然在你的'Gemfile'中有一個對sqlite的引用,因此它仍然被安裝。如上所述,確保您刪除。它也可能是你在那裏有一些其他的寶石有sqlite作爲一個硬依賴。你可以看看'Gemfile.lock'來檢查。 – 2013-06-13 04:50:45

6

你不能在Heroku中使用sqlite3。默認情況下,Heroku的Cedar棧使用Postgresql。您需要將您的sqlite3寶石包裝在開發組中,並在您的Gemfile中包含pg

group :development, :test do 
    gem 'sqlite3' 
end 

gem 'pg' 

確保捆綁運行編輯的Gemfile後重新安裝,所以你可以推到Heroku的

+0

所以你的意思是我應該編輯那個寶石文件? – dummy 2013-03-21 17:48:33

+0

是的,Gemfile是供您編輯的。這就是你指定的所有庫(Ruby中的寶石)的地方。 – 2013-03-21 18:01:56

+0

我應該從寶石文件中刪除任何東西嗎?或者只是將其複製粘貼到該文件中? – dummy 2013-03-21 18:04:36

0

試試這個:

  • 打開Gemfile.lock的,向下滾動到sqlite3的(1.3。 x)在'規格:'
  • 確保它只顯示爲sqlite3(1.3.x),沒有額外的爵士樂。
  • 如果顯示任何額外的標籤,如「-x86-mingw32」,則將其刪除。
  • 運行軟件包安裝。
  • 然後嘗試推Heroku的主人。

爲我工作。