1

我一直在关注 ruby​​ on rails 应用程序教程,并且我一步一步地遵循了所有内容,但是当我到达将应用程序上传到 heroku 的最后一步时,我收到了一条错误消息。我尝试安装它要求的 gem,但我仍然收到相同的错误消息。

$ git push heroku master 计数对象:67,完成。Delta 压缩最多使用 4 个线程。压缩对象:100% (53/53),完成。写入对象:100% (67/67), 26.30 KiB | 0 字节/秒,完成。总计 67(增量 4),重复使用 0(增量 0)

-----> Ruby/Rails app detected
-----> WARNING: Removing `Gemfile.lock` because it was generated on Windows.
       Bundler will do a full resolve so native gems are handled properly.
-----> Installing dependencies using Bundler version 1.3.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin
       Fetching gem metadata from https://rubygems.org/...........
       Fetching gem metadata from https://rubygems.org/..
       Resolving dependencies...
       Installing rake (10.0.4)
       Installing i18n (0.6.1)
       Installing multi_json (1.7.6)
       Installing activesupport (3.2.13)
       Installing builder (3.0.4)
       Installing activemodel (3.2.13)
       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.3)
       Installing tilt (1.4.1)
       Installing sprockets (2.2.2)
       Installing actionpack (3.2.13)
       Installing mime-types (1.23)
       Installing polyglot (0.3.3)
       Installing treetop (1.4.14)
       Installing mail (2.5.4)
       Installing actionmailer (3.2.13)
       Installing arel (3.0.2)
       Installing tzinfo (0.3.37)
       Installing activerecord (3.2.13)
       Installing activeresource (3.2.13)
       Using bundler (1.3.2)
       Installing coffee-script-source (1.6.2)
       Installing execjs (1.4.0)
       Installing coffee-script (2.2.0)
       Installing rack-ssl (1.3.3)
       Installing json (1.8.0)
       Installing rdoc (3.12.2)
       Installing thor (0.18.1)
       Installing railties (3.2.13)
       Installing coffee-rails (3.2.2)
       Installing jquery-rails (3.0.0)
       Installing rails (3.2.13)
       Installing sass (3.2.9)
       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
       --with-opt-dir
       --without-opt-dir
       --with-opt-include
       --without-opt-include=${opt-dir}/include                                                                                                  --without-opt-lib=${opt-dir}/lib
       --with-opt-lib
       --without-opt-lib=${opt-dir}/lib
       --with-make-prog                                                                                                                                                         --curdi
       --without-make-prog                                                                                                                       /usr/local/bin/ruby
       --srcdir=.                                                                                                                                         
       --curdir
       --ruby=/usr/local/bin/ruby                                                                                                                                        --without-sqli
       --with-sqlite3-dir                                                                                                                        -lib                                  
       --without-sqlite3-dir
       --with-sqlite3-include
       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
       --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_1rov1v3jt0scl/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.7 for inspection.
       Results logged to /tmp/build_1rov1v3jt0scl/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out
       An error occurred while 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.
 !

 !     Push rejected, failed to compile Ruby/Rails app

To git@heroku.com:aqueous-eyrie-1129.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:aqueous-eyrie-1129.git'
4

2 回答 2

2

Heroku 不再支持将 SQLite 作为数据库,因此您必须切换到 Postgres gem:pg。虽然您可以将 sqlite3 用于开发,将 postgres 用于生产,但不建议您这样做,因为您希望让您的开发和生产环境尽可能相似。

Heroku 有一个帮助你入门的指南

于 2013-06-06T20:50:53.050 回答
0

由于 Heroku 为您的应用程序提供了 PostgreSQL 数据库,因此编辑您的 Gemfile 并更改此行:

gem 'sqlite3' 对此:

宝石'pg'

于 2013-06-06T21:02:44.893 回答