Heroku安装sqlite3,即使它不是依赖项

时间:2012-10-13 18:27:49

标签: ruby-on-rails ruby-on-rails-3 heroku sqlite

我正在尝试将我的应用部署到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文件并再次运行bundler。这些都没有奏效。 Heroku仍然安装了错误版本的authlogic并尝试安装sqlite3。

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

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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