HEROKU – 无法运行git push heroku master

我运行命令

heroku create --stack cedar git push heroku master 

但它给了我一个错误:

 > Counting objects: 144, done. Delta compression using up to 2 threads. > Compressing objects: 100% (128/128), done. Writing objects: 100% > (144/144), 50.16 KiB, done. Total 144 (delta 23), reused 0 (delta 0) > > -----> Heroku receiving push > -----> Ruby/Rails app detected > -----> Installing dependencies using Bundler version 1.1.rc > Running: bundle install --without development:test --path vendor/bundle --deployment > Fetching gem metadata from http://rubygems.org/....... > Installing rake (0.9.2.2) > Installing multi_json (1.0.3) > Installing activesupport (3.1.1) > Installing builder (3.0.0) > Installing i18n (0.6.0) > Installing activemodel (3.1.1) > Installing erubis (2.7.0) > Installing rack (1.3.5) > 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.0.3) > Installing actionpack (3.1.1) > Installing mime-types (1.17.2) > Installing polyglot (0.3.2) > Installing treetop (1.4.10) > Installing mail (2.3.0) > Installing actionmailer (3.1.1) > Installing arel (2.2.1) > Installing tzinfo (0.3.30) > Installing activerecord (3.1.1) > Installing activeresource (3.1.1) > Installing coffee-script-source (1.1.2) > Installing execjs (1.2.9) > Installing coffee-script (2.2.0) > Installing rack-ssl (1.3.2) > Installing json (1.6.1) with native extensions > Installing rdoc (3.11) > Installing thor (0.14.6) > Installing railties (3.1.1) > Installing coffee-rails (3.1.1) > Installing jquery-rails (1.0.16) > Installing pg (0.11.0) with native extensions > Using bundler (1.1.rc) > Installing rails (3.1.1) > Installing sass (3.1.10) > Installing sass-rails (3.1.4) > **Installing sqlite3 (1.3.4) 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 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_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4 > for inspection. > Results logged to /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4/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_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/source.rb:90:in > `block in install' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:78:in > `preserve_paths' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/source.rb:89:in > `install' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:73:in > `block in install_gem_from_spec' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:93:in > `with_build_args' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:72:in > `install_gem_from_spec' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:56:in > `block in run' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:55:in > `run' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/installer.rb:12:in > `install' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/cli.rb:219:in > `install' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in > `run' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor.rb:263:in > `dispatch' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/lib/bundler/vendor/thor/base.rb:386:in > `start' > from /tmp/build_272b7nu18wwh5/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.rc/bin/bundle:13:in > `' > from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `load' > from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `' ! ! Failed to install gems via Bundler. ! ! Heroku push rejected, > failed to compile Ruby/rails app > > To git@heroku.com:falling-ice-5948.git ! [remote rejected] master -> > master (pre-receive hook declined) error: failed to push some refs to > 'git@heroku.com:falling-ice-5948.git' 

编辑 – 这篇文章可能真的有用: sqlite3-ruby安装错误

将其添加到您的Gemfile中,

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

然后做一个bundle然后重新回到heroku。 你不能在Heroku上使用sqlite3 – 这是错误的原因。

如果你从Gemfile中删除sqlite3(或者只使它开发)后仍然遇到问题,那就是你没有在Heroku眼中重新更新该文件,因为它依赖于Git。

很简单:

 git add Gemfile git commit -m "Removed sqlite3 from Gemfile" git push heroku master 

在我意识到改变不是“正在接受”之前,我对这个问题嗤之以鼻,因为我没有真正将它们交给Heroku。

经过一天尝试在众多论坛中规定的每一个修复后,这对我有用! 首先,如果您使用Rails教程书或在线,您需要转到第二个版本(在http://ruby.railstutorial.org/上有在线测试版)。

打开你的编辑器并在你的Gemfile中添加行:

 group :production do gem 'pg', '0.12.2' end group :development do gem 'sqlite3', '1.3.4' end 

现在您还需要将新编辑的Gemfile提交给Heroku,以便接下来的步骤。

 git add Gemfile git commit -m "Put Sqlite3 into development in the Gemfile" git push heroku master 

如果在应用了tibbon和animuson的指令(发生在我身上)之后仍然无法为你工作,请尝试在Gemfile中注释掉“gem’sqlite3”行,然后再次添加-commit-push。

我按照这些说明操作,但在我的情况下,我必须将更新的Gemfile.lock文件添加到版本控制。 所以,我使用标志-a for“all”来添加Gemfile文件和Gemfile.lock文件。

git commit -am“将Sqlite3放入Gemfile中的开发中并添加更新的Gemfile.lock”
git push heroku master

您可以使用稍微不同的语法来解决此问题:

 gem 'pg', group: :production gem 'sqlite3', group: :development 

如果你有参考:

# Use sqlite3 as the database for Active Record gem 'sqlite3'

在您的Gemfile中,请务必将其注释掉或将其替换为上面建议的代码。 否则,如果仍然存在,您仍将遇到相同的错误。