安装sqlite3(1.3.7)时发生错误,Bundler无法继续

当我使用命令git push heroku master时,我收到此错误。

 $ 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 git@heroku.com:whispering-taiga-7415.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@heroku.com:whispering-taiga-7415.git' 

你不能在Heroku上使用sqlite3。 默认情况下,Heroku的Cedar堆栈使用Postgresql。 您需要在开发组中包装sqlite3 gem并在Gemfile中包含pg

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

确保在编辑Gemfile后再次运行bundle install,以便可以推送到heroku

Heroku通常不支持SQLite作为数据库引擎,主要是因为它们不会在运行时为您的应用程序提供对SQLite所需的本地文件系统的写访问权。

相反,你应该使用PostgreSQL(带有pg gem)作为Heroku推荐的数据库引擎。

试试这个:

  • 打开Gemfile.lock并向下滚动到’specs:’下的sqlite3(1.3.x)
  • 确保它只显示为sqlite3(1.3.x),没有额外的爵士乐。
  • 如果显示任何额外的标签,例如“-x86-mingw32”,则将其删除。
  • 运行捆绑安装。
  • 然后尝试推动Heroku大师。

为我工作。