でレールプロジェクトを作った、
rails new test_bootstrap.
が成功した。
プロジェクトディレクトリに移動し、gemsを追加しました。
gem "therubyracer"
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "twitter-bootstrap-rails"
を追加し
bundle install
を実行すると、このようなエラーが発生します。
Installing libv8 (3.16.14.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
creating Makefile
지정된 경로를 찾을 수 없습니다. 지정된 경로를 찾을 수
없습니다. 지정된 경로를 찾을 수 없습니다.
c:/RailsInstaller/Ruby1.9.3/lib/ruby/ge
ms/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 requires
python 2 to be installed in order to build, but it is currently not available (RuntimeErr
or) from c:/RailsInstaller/Ruby1.9.
3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib
v8/builder.rb:42:in `block in build_libv8!'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `chdir'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `build_libv8!'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/location.rb:24:in `install!'
from extconf.rb:7:in `<main>'
Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/l
ibv8-3.16.14.3 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex
t/libv8/gem_make.out
An error occurred while installing libv8 (3.16.14.3), and Bundler cannot
continue.
Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
韓国人の方ごめんなさい。と表示されます。
と表示され、以下のコマンドを実行してみました。
gem install libv8 -v '3.16.14.3'
を実行したところ、同じエラーが発生しました。
これを試してみてほしい:
gem install libv8 -v '3.16.14.3' -- --with-system-v8
注意 : libv8 は therubyracer が使用する V8 エンジンのインターフェイスです、 V8 が既にインストールされている場合でも、libv8 を使用する必要があるかもしれません。もし V8がインストールされている場合でも、libv8を使う必要があるかもしれません。 を使用したい場合は、--with-system-v8` オプションを使用してください。
詳しくは libv8 on github のドキュメントを参照してください。
libv8のインストール後に、therubyracerのインストールでエラーが発生するという同様の問題に遭遇しました。 これが私の解決策です。
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
$ bundle install
-therubyracerのインストールエラーを参照してください-。
$ gem uninstall libv8
$ brew install v8
$ gem install therubyracer
$ bundle install
-libv8のインストールエラーを参照してください-。
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
ウィンドウズでは therubyracer
gem は必要ないと思います。これはV8エンジンを使ったjavascriptランタイムです。そのため、libv8
をインストールしようとしている。
このgemはGemfileから削除して大丈夫です。
Railsはどのランタイムを使っても構いません。execjs、
nodejs`などはすべて可能なオプションです。
MicrosoftはすでにWindowsのjavascriptにJScriptランタイムを埋め込んでおり、Railsはそれを使っています。詳しくはこちらを参照。
私の問題は「therubyracer」とはまったく関係がなく、「libv8」の宝石だけでした。@ rishav-bhardwajが指摘したように、「--with-system-v8」はトリックを実行せず、代わりに実行する必要がありました。
「バンドルアップデート」。
その後。
「バンドルインストール」。
そして最後に。
バンドルが完了しました。!
。
エラーがなくなりました。!
。 Gem :: Ext :: BuildError:ERROR:gemネイティブ拡張の構築に失敗しました。 libv8(3.16.14.7)のインストール中にエラーが発生し、Bundlerは続行できません。 `gem install libv8 -v '3.16.14.7'`がバンドルされる前に成功することを確認してください。
。
以下のコマンドを使用してlibv8 3.16.14.7
の問題を解決しました。
gem install libv8 -v '3.16.14.7'--with-system-v8
。
そして、「バンドルインストール」が正常に完了しました。