2

RailsアプリをHerokuにアップロードするときにエラーが発生し続ける

Installing therubyracer (0.11.0)
       Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
       /usr/local/bin/ruby extconf.rb
       checking for main() in -lpthread... yes
       checking for v8.h... no
       *** 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-pthreadlib
       --without-pthreadlib
       --enable-debug
       --disable-debug
       --with-v8-dir
       --without-v8-dir
       --with-v8-include
       --without-v8-include=${v8-dir}/include
       --with-v8-lib
       --without-v8-lib=${v8-dir}/lib
       /tmp/build_3srt9ifqtbs6m/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.11.0/ext/v8/build.rb:42:in `build_with_system_libv8': unable to locate libv8. Please see output for details (RuntimeError)
       from extconf.rb:22:in `<main>'
       The Ruby Racer requires libv8 ~> 3.11.8
       to be present on your system in order to compile
       and link, but it could not be found.
       In order to resolve this, you will either need to manually
       install an appropriate libv8 and make sure that this
       build process can find it. If you install it into the
       standard system path, then it should just be picked up
       automatically. Otherwise, you'll have to pass some extra
       flags to the build process as a hint.
       If you don't want to bother with all that, there is a
       rubygem that will do all this for you. You can add
       following line to your Gemfile:
       gem 'libv8', '~> 3.11.8'
       We hope that helps, and we apologize, but now we have
       to push the eject button on this install.
       thanks,
       The Mgmt.
       Gem files will remain installed in /tmp/build_3srt9ifqtbs6m/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.11.0 for inspection.
       Results logged to /tmp/build_3srt9ifqtbs6m/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.11.0/ext/v8/gem_make.out
       An error occurred while installing therubyracer (0.11.0), and Bundler cannot continue.
       Make sure that `gem install therubyracer -v '0.11.0'` succeeds before bundling.
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

Gemファイルの一部

gem 'libv8', '~> 3.11.8'
gem "therubyracer", :platforms => :ruby, :require => 'v8'
group :linux_test do
  #gem "therubyracer", :require => false
  gem "libnotify", :require => false
end
group :production do
  gem "therubyracer-heroku"
  gem "pg"
end

therubyracerそしてlib8確かに最新です、私はちょうど今それらを再インストールしました。

どうすれば修正できますか?

PS Ubuntu 12.1、x64。

4

1 に答える 1

6

https://devcenter.heroku.com/articles/rails3x-asset-pipeline-cedarでHerokuCedarのRails3.1+AssetPipelineを確認してください。

therubyracer

以前にtherubyracerまたはを使用していた場合therubyracer-heroku、これらのgemは非常に大量のメモリを使用するため、これらのgemは不要になり、強くお勧めしません。

therubyracer開発環境でgemが必要な場合は、グループにまとめます。

group :development do
  gem 'therubyracer', :platforms => :ruby, :require => 'v8'
end

development(Herokuは、グループにのみ存在するgemをインストールしません。)

とにかく、以下のproductionグループから削除してください。

于 2012-12-21T17:53:35.877 に答える