ruby-on-rails – 将RoR部署到Heroku并且Sqlite3失败

我在同一主题上发现了一些帖子( here’s一个),并认为我做了正确的更改,但我仍然无法解决问题.

完成捆绑安装后,我推送到heroku,当它到达sqlite3安装时出现以下错误.

Installing sqlite3 (1.3.5) 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 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_13nbwv3kitbub/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection.
   Results logged to /tmp/build_13nbwv3kitbub/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out
   An error occured while installing sqlite3 (1.3.5),and Bundler cannot continue.
   Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected,Failed to compile Ruby/rails app

To git@heroku.com:morning-dawn-1372.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: Failed to push some refs to 'git@heroku.com:morning-dawn-1372.git'

我的Gemfile看起来像这样:

source 'https://rubygems.org'

gem 'rails','3.2.2'

# Bundle edge Rails instead:
# gem 'rails',:git => 'git://github.com/rails/rails.git'

gem 'json'

group :development,:test do 
  gem 'sqlite3-ruby',:require => 'sqlite3'
  gem 'sqlite3','1.3.5'
end 

# 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' 

  gem 'uglifier','>= 1.0.3'
end

gem 'jquery-rails'

group :production do
  gem 'pg','0.12.2'
end

# 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 'ruby-debug'

看起来我有两个

Using sqlite3 (1.3.5)
Using sqlite3-ruby (1.3.3)

在我的系统上.不确定这是否是一个问题,但解释了为什么我在gemfile中排除了这两个问题.

环境信息:

$ruby -v 
ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-cygwin] 

$rails -v 
Rails 3.2.2

解决方法

运行bundle命令,然后确保在推送到Heroku之前将Gemfile和Gemfile.lock都检入repo.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...