我正在尝试将我的应用程序部署到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 [email protected]:waiterd2-staging.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]: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宝石不是Gemfile中指定的宝石。我怀疑authlogic gem的唯一原因是因为它将sqlite3列为开发依赖项。但这无关紧要。

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

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

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

非常感谢您的帮助!

最佳答案

问题原来很简单。我将错误的分支推到了Heroku,因此解决该问题的尝试显然无效。

09-30 17:46
查看更多