2013-03-21 62 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的主人。

为我工作。

相关问题