3

我正在尝试将我的应用程序部署到 Heroku,但它不断被以下输出拒绝。

waitup$git push staging master
Counting objects: 4184, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1033/1033), done.
Writing objects: 100% (4184/4184), 1.11 MiB | 494 KiB/s, done.
Total 4184 (delta 3069), reused 4184 (delta 3069)

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.2.1
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
       Fetching gem metadata from http://rubygems.org/.......
       Fetching https://github.com/stripe/stripe-ruby
       Installing rake (0.8.7)
       Installing abstract (1.0.0)
       Installing activesupport (3.0.4)
       Installing builder (2.1.2)
       Installing i18n (0.5.0)
       Installing activemodel (3.0.4)
       Installing erubis (2.6.6)
       Installing rack (1.2.2)
       Installing rack-mount (0.6.14)
       Installing rack-test (0.5.7)
       Installing tzinfo (0.3.27)
       Installing actionpack (3.0.4)
       Installing mime-types (1.16)
       Installing polyglot (0.3.1)
       Installing treetop (1.4.9)
       Installing mail (2.2.19)
       Installing actionmailer (3.0.4)
       Installing bcrypt-ruby (2.1.4) with native extensions
       Installing orm_adapter (0.0.5)
       Installing warden (1.0.4)
       Installing devise (1.3.4)
       Installing formtastic (1.2.3)
       Installing has_scope (0.5.0)
       Installing responders (0.6.4)
       Installing inherited_resources (1.2.2)
       Installing will_paginate (3.0.pre2)
       Installing inherited_views (0.0.2)
       Installing arel (2.0.9)
       Installing activerecord (3.0.4)
       Installing meta_search (1.0.5)
       Installing activeresource (3.0.4)
       Using bundler (1.2.1)
       Installing thor (0.14.6)
       Installing railties (3.0.4)
       Installing rails (3.0.4)
       Installing sass (3.1.2)
       Installing activeadmin (0.2.2)
       Installing addressable (2.2.6)
       Installing authlogic (2.1.6)
       Installing celerity (0.8.8)
       Installing culerity (0.2.15)
       Installing nokogiri (1.4.4) with native extensions
       Installing ffi (0.6.3) with native extensions
       Installing childprocess (0.1.7)
       Installing json_pure (1.5.1)
       Installing rubyzip (0.9.4)
       Installing selenium-webdriver (0.1.3)
       Installing xpath (0.1.3)
       Installing capybara (0.4.1.2)
       Installing configuration (1.2.0)
       Installing cookiejar (0.3.0)
       Installing diff-lcs (1.1.2)
       Installing json (1.5.1) with native extensions
       Installing gherkin (2.3.7) with native extensions
       Installing term-ansicolor (1.0.5)
       Installing cucumber (0.10.2)
       Installing cucumber-rails (0.3.1)
       Installing daemons (1.1.6)
       Installing database_cleaner (0.6.4)
       Installing hiredis (0.3.2) with native extensions
       Installing em-hiredis (0.1.0)
       Installing escape_utils (0.2.4) with native extensions
       Installing eventmachine (0.12.10) with native extensions
       Installing em-http-request (0.3.0) with native extensions
       Installing thin (1.3.1) with native extensions
       Installing faye (0.7.1)
       Installing launchy (0.4.0)
       Installing rest-client (1.6.3)
       Installing heroku (2.2.8)
       Installing jquery-rails (1.0.7)
       Installing jwt (0.1.3)
       Installing multi_json (1.0.3)
       Installing mysql2 (0.2.7) with native extensions
       Installing rspec-core (2.5.1)
       Installing rspec-expectations (2.5.0)
       Installing rspec-mocks (2.5.0)
       Installing rspec (2.5.0)
       Installing rspec-rails (2.5.0)
       Installing seed-fu (2.0.1)
       Installing sequel (3.20.0)
       Installing sinatra (1.0)
       Installing spork (0.8.4) with native extensions
       Installing sqlite3 (1.3.4) with native extensions
       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 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_qlnbqtp08z3t/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4 for inspection.
       Results logged to /tmp/build_qlnbqtp08z3t/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out
       An error occurred while installing sqlite3 (1.3.4), and Bundler cannot continue.
       Make sure that `gem install sqlite3 -v '1.3.4'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !     
 !     Detected sqlite3 gem which is not supported on Heroku.
 !     http://devcenter.heroku.com/articles/how-do-i-use-sqlite3-for-development
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

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

显然, sqlite3 gem 是这里的问题。奇怪的是,它没有作为依赖项包含在我的 Gemfile 或 Gemfile.lock 中。

我的 gemfile 看起来像这样:

source 'http://rubygems.org'

gem 'rails', '3.1.0'

gem 'pg'
gem 'thin'
gem 'authlogic', '3.1.3'
gem 'twilio-ruby'
gem 'heroku'
gem 'activeadmin', :git => 'https://github.com/gregbell/active_admin.git'
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby'
gem 'faye'

group :assets do
    gem 'less'
    gem 'bourbon'
    gem 'therubyracer'
    gem 'sass-rails'
    gem 'coffee-rails'
    gem 'uglifier'
end

这里有几件事很突出。Heroku 安装的 authlogic gem 不是 Gemfile 中指定的。我怀疑 authlogic gem 的唯一原因是因为它将 sqlite3 列为开发依赖项。不过这应该没关系。

当我在本地机器上运行 Heroku 输出中列出的确切命令时,没有安装 sqlite3 gem。

我尝试了许多在 StackOverflow 和其他地方找到的建议,例如删除 Gemfile.lock 文件并再次运行捆绑程序。这些都没有奏效。Heroku 仍然安装了错误版本的 authlogic 并尝试安装 sqlite3。

如何让 Heroku 停止尝试安装 sqlite3 gem?

非常感谢您的帮助!

4

1 回答 1

2

问题变得非常简单。我将错误的分支推送到 Heroku,所以我解决问题的尝试显然是无效的。

于 2012-11-06T17:41:07.230 回答