安装sqlite3时发生将rails应用程序推送到Heroku错误,并且Bundler无法继续[重复]
Posted
技术标签:
【中文标题】安装sqlite3时发生将rails应用程序推送到Heroku错误,并且Bundler无法继续[重复]【英文标题】:Errors of pushing rails app to Heroku error occurred while installing sqlite3, and Bundler cannot continue [duplicate] 【发布时间】:2012-11-12 22:30:12 【问题描述】:我试图将我的 rails 应用程序推送到 heroku 并收到如下错误:
-
Counting objects: 177, done. Delta compression using up to 2 threads.
Compressing objects: 100% (161/161), done. Writing objects: 100%
(177/177), 44.73 KiB, done. Total 177 (delta 39), reused 0 (delta 0)
-----> 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/
Fetching gem metadata from
Fetching gem metadata from
Installing rake (10.0.2)
Installing i18n (0.6.1)
Installing multi_json (1.3.7)
Installing activesupport (3.2.8)
Installing builder (3.0.4)
Installing activemodel (3.2.8)
Installing erubis (2.7.0)
Installing journey (1.0.4)
Installing rack (1.4.1)
Installing rack-cache (1.2)
Installing rack-test (0.6.2)
Installing hike (1.2.1)
Installing tilt (1.3.3)
Installing sprockets (2.1.3)
Installing actionpack (3.2.8)
Installing mime-types (1.19)
Installing polyglot (0.3.3)
Installing treetop (1.4.12)
Installing mail (2.4.4)
Installing actionmailer (3.2.8)
Installing arel (3.0.2)
Installing tzinfo (0.3.35)
Installing activerecord (3.2.8)
Installing activeresource (3.2.8)
Using bundler (1.2.1)
Installing coffee-script-source (1.4.0)
Installing execjs (1.4.0)
Installing coffee-script (2.2.0)
Installing rack-ssl (1.3.2)
Installing json (1.7.5) with native extensions
Installing rdoc (3.12)
Installing thor (0.16.0)
Installing railties (3.2.8)
Installing coffee-rails (3.2.2)
Installing jquery-rails (2.1.3)
Installing rails (3.2.8)
Installing sass (3.2.3)
Installing sass-rails (3.2.5)
Installing sqlite3 (1.3.6) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native ex tension.
/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
--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_2pense1pvyqut/vendor/bundle /ruby/1.9.1/gems/sqlite3-1.3.6
for inspection.
Results logged to /tmp/build_2pense1pvyqut/vendor/bundle/ruby/1.9.1/gems/
sqlite3-1.3.6/ext/sqlite3/gem_make.out
An error occurred while installing sqlite3 (1.3.6), and Bundler cannot co ntinue.
Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
! ! Failed to install gems via Bundler. ! ! Heroku push
rejected, failed to compile Ruby/rails app
==========================================
我的 GemFile 如下:
========================================
gem 'rails', '3.2.8'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :production do gem 'pg' end
group :development, :test do gem 'taps' gem 'rvm'
gem 'rspec-rails','2.0.1' gem 'annotate' gem 'faker','0.3.1' gem 'rspec','2.0.1' gem 'webrat','0.7.1' gem 'spork','0.8.4'
gem 'factory_girl_rails','1.0' end
gem 'rake', '~> 10.0.1'
#gem 'yaml_db'
# Gems used only for assets and not required
# in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more
supported runtimes # gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3' end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
========================================
我尝试了几乎所有在线提供的解决方案,但仍然没有运气。 任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:我在您上面的代码中没有看到它,但猜测您可能在 gemfile 的顶部有您的 gem 'sqlite3'
,因此它在所有环境中都被使用。 Heroku 不支持 Sqlite,因此它已被排除在生产组之外。尝试以下操作,以便您可以使用 sqlite 进行开发和测试,然后在 Heroku 上使用 pg。
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
【讨论】:
谢谢你。我终于发现那是因为我在分支上,我试图推送 master。我切换到大师并再次推动,宾果游戏,它工作。再次感谢.. 我遇到了类似的问题。而且我还没有承诺删除 sqlite3。 O_o 愚蠢的错误,为阅读这篇文章的其他人记录。【参考方案2】:有同样的问题。意识到我没有将更改提交给 Git。一旦我提交它并将其重新推送到 Heroku,它就可以正常工作了。
【讨论】:
这里也一样,试图将 Git 中尚未提交的内容推送到 Heroku。提交>>推送 这里也一样,我改了gemfile后,还是出现这个错误,告诉我安装sqlite失败。然后我意识到我只更改了本地 gemfile。提交修改后的gemfile后,heroku服务器不会再次尝试安装sqlite【参考方案3】:以下内容在我的 Mac 上对我有用:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
然后
bundle install
但这引发了这个错误:
can't find the 'libpq-fe.h header *** extconf.rb failed ***
按照此处的说明使用 Homebrew 解决了此错误 - https://***.com/a/20482221/2665896
即
brew install postgresql
gem install pg
然后将 Gemfile 和 Gemfile.lock 提交给本地 master。
然后git push heroku master
就像一个魅力。
【讨论】:
以上是关于安装sqlite3时发生将rails应用程序推送到Heroku错误,并且Bundler无法继续[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将带有 SQLite3 的 Rails 推送到 Heroku 失败 [重复]
推送到 Elastic Beanstalk 时出现 Rails 捆绑错误