0

问题是我无法在 Heroku 中部署我的项目,因为它要求卸载 gem 等。

我按照以下链接在 Rails 上安装了 ruby​​:http ://railsinstaller.org/

$ruby -v    
ruby 1.9.3p429 (2013-05-15) [i386-mingw32]

$gem -v    
2.0.3

$rails -v    
`C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:296:in
uld not find 'railties' (>= 0) among 12 total gem(s) (Gem::LoadErr
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/dependen
to_spec'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext
:47:in `gem'
        from C:/RailsInstaller/Ruby1.9.3/bin/rails:22:in `<main>'`

我不知道为什么Rails 昨天正确显示版本时会变成这样。

然后我使用了 Aptana Studio 3 中的部署向导,它显示了这个结果

$ git push heroku master
Counting objects: 69, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (58/58), done.
Writing objects: 100% (69/69), 35.36 KiB, done.
Total 69 (delta 2), reused 0 (delta 0)

-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
       Running: bundle install --without development:test --path vendor/bundle -
-binstubs vendor/bundle/bin
       Fetching gem metadata from https://rubygems.org/...........
       Fetching gem metadata from https://rubygems.org/..
       Resolving dependencies...
       Installing rake (10.1.0)
       Installing i18n (0.6.1)
       Installing multi_json (1.7.7)
       Installing activesupport (3.2.13)
       Installing builder (3.0.4)
       Installing activemodel (3.2.13)
       Installing erubis (2.7.0)
       Installing journey (1.0.4)
       Installing rack (1.4.5)
       Installing rack-cache (1.2)
       Installing rack-test (0.6.2)
       Installing hike (1.2.3)
       Installing tilt (1.4.1)
       Installing sprockets (2.2.2)
       Installing actionpack (3.2.13)
       Installing mime-types (1.23)
       Installing polyglot (0.3.3)
       Installing treetop (1.4.14)
       Installing mail (2.5.4)
       Installing actionmailer (3.2.13)
       Installing arel (3.0.2)
       Installing tzinfo (0.3.37)
       Installing activerecord (3.2.13)
       Installing activeresource (3.2.13)
       Using bundler (1.3.2)
       Installing coffee-script-source (1.6.3)
       Installing execjs (1.4.0)
       Installing coffee-script (2.2.0)
       Installing rack-ssl (1.3.3)
       Installing json (1.8.0)
       Installing rdoc (3.12.2)
       Installing thor (0.18.1)
       Installing railties (3.2.13)
       Installing coffee-rails (3.2.2)
       Installing jquery-rails (3.0.4)
       Installing rails (3.2.13)
       Installing sass (3.2.9)
       Installing sass-rails (3.2.6)
       Installing sqlite3 (1.3.7)
       Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native ex
tension.
       /tmp/build_3o7mrj90l1v27/vendor/ruby-2.0.0/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=/tmp/build_3o7mrj90l1v27/vendor/ruby-2.0.0/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}/
       --enable-local
       --disable-local
       Gem files will remain installed in /tmp/build_3o7mrj90l1v27/vendor/bundle
/ruby/2.0.0/gems/sqlite3-1.3.7 for inspection.
       Results logged to /tmp/build_3o7mrj90l1v27/vendor/bundle/ruby/2.0.0/gems/
sqlite3-1.3.7/ext/sqlite3/gem_make.out
       An error occurred while installing sqlite3 (1.3.7), and Bundler cannot co
ntinue.
       Make sure that `gem install sqlite3 -v '1.3.7'` succeeds before bundling.

       Bundler Output: Fetching gem metadata from https://rubygems.org/.........
..
       Fetching gem metadata from https://rubygems.org/..
       Resolving dependencies...
       Installing rake (10.1.0)
       Installing i18n (0.6.1)
       Installing multi_json (1.7.7)
       Installing activesupport (3.2.13)
       Installing builder (3.0.4)
       Installing activemodel (3.2.13)
       Installing erubis (2.7.0)
       Installing journey (1.0.4)
       Installing rack (1.4.5)
       Installing rack-cache (1.2)
       Installing rack-test (0.6.2)
       Installing hike (1.2.3)
       Installing tilt (1.4.1)
       Installing sprockets (2.2.2)
       Installing actionpack (3.2.13)
       Installing mime-types (1.23)
       Installing polyglot (0.3.3)
       Installing treetop (1.4.14)
       Installing mail (2.5.4)
       Installing actionmailer (3.2.13)
       Installing arel (3.0.2)
       Installing tzinfo (0.3.37)
       Installing activerecord (3.2.13)
       Installing activeresource (3.2.13)
       Using bundler (1.3.2)
       Installing coffee-script-source (1.6.3)
       Installing execjs (1.4.0)
       Installing coffee-script (2.2.0)
       Installing rack-ssl (1.3.3)
       Installing json (1.8.0)
       Installing rdoc (3.12.2)
       Installing thor (0.18.1)
       Installing railties (3.2.13)
       Installing coffee-rails (3.2.2)
       Installing jquery-rails (3.0.4)
       Installing rails (3.2.13)
       Installing sass (3.2.9)
       Installing sass-rails (3.2.6)
       Installing sqlite3 (1.3.7)
       Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native ex
tension.

       /tmp/build_3o7mrj90l1v27/vendor/ruby-2.0.0/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=/tmp/build_3o7mrj90l1v27/vendor/ruby-2.0.0/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}/
       --enable-local
       --disable-local

这是最后的错误

Gem files will remain installed in /tmp/build_3o7mrj90l1v27/vendor/bundle
/ruby/2.0.0/gems/sqlite3-1.3.7 for inspection.
       Results logged to /tmp/build_3o7mrj90l1v27/vendor/bundle/ruby/2.0.0/gems/
sqlite3-1.3.7/ext/sqlite3/gem_make.out
       An error occurred while installing sqlite3 (1.3.7), and Bundler cannot co
ntinue.
       Make sure that `gem install sqlite3 -v '1.3.7'` succeeds before bundling.

 !
 !     Failed to install gems via Bundler.
 !
 !     Detected sqlite3 gem which is not supported on Heroku.
 !     https://devcenter.heroku.com/articles/sqlite3
 !

 !     Push rejected, failed to compile Ruby/Rails app

我也试过这个:

$ gem install sqlite3 -- --with-sqlite3-dir=/c/RailsInstaller/Ruby1.9.3/bin/sql
ite3
Successfully installed sqlite3-1.3.7-x86-mingw32
1 gem installed

和这个:

$ gem install bundler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Installing ri documentation for bundler-1.3.5
1 gem installed

但我仍然得到同样的错误。我做错了什么?

我是 Ruby 和 Rails 的新手,这是我第一次将应用程序部署到 heroku

谢谢,

4

1 回答 1

0

Heroku 使用postgresql. https://devcenter.heroku.com/articles/sqlite3

删除sqlite3或将其移动到developmentGemfile 中的组中,如下所示:

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'thin'
  gem 'pg'
end

删除Gemfile.lock 运行bundle install --without production

git add .

git commit -am "bundle updating sqlite3"

git push heroku master
于 2013-07-14T02:55:14.833 回答