[解決済み] therubyracer - Gem::Ext::BuildError: ERROR: gem ネイティブ拡張のビルドに失敗しました
質問
Mavericksで以下のgemのバージョンをインストールしようとしています。
- libv8 (3.16.14.3)
- ザルビーレーサー (0.12.1)
明らかに、therubyracer gems は libv8 に依存しています。
1) libv8 のインストール
libv8 とは何ですか?私のちょっとした調査では、Google Chrome で使用されるある種の javascript ライブラリであることが示されているようです。
インストールがうまくいかなかったのですが この素晴らしい記事 には、私のエラーと、それを回避する方法についてのよく説明された答えの両方がありました。
そこで私は
libv8
で
gem install libv8 -- --with-system-v8
これはgemをインストールしますが、gemに付属しているバージョンではなく、v8ライブラリのローカルシステムのインストールを使用するという理解でよろしいでしょうか。いずれにせよ、それは成功しました。
2) therubyracerのインストール
次のステップで、私はインストールに苦労しました。
therubyracer
gem をインストールするのに苦労しました。このgemが何をするものなのかはよく分かりませんが、私がやろうとしているrailsプロジェクトの依存関係であることだけは確かです。
bundle install
.
以下のようなエラーが出ます。
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... 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
--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=/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--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
/Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
私が調べたところでは、インストールするために選んだのは
libv8
で提供されたものではなく、ローカルの V8 ライブラリを使用してインストールしました。
libv8
で提供されるものではなく、私のローカル V8 ライブラリを使用していましたが、現在ではそのローカル インストールを見つけることができませんでした。
- V8 が本当にインストールされているかどうかを確認し、それを見つけるにはどうすればよいですか。
- 指定されたフラグをいくつか試しましたが、どれも gem を正しいインストール ディレクトリに指し示すようには見えませんでした。
-
これは別のトピックかもしれませんが、何が
extconf.rb
? いくつかの場所で見かけたことがあります。そして、それは何をしようとしているかというとgcc
コンパイラを具体的にどうしようとしているのか?
ありがとうございます!
EDITです。
-
私が試したのは この解決策 を使ってアンインストールし、再インストールしてみました。
brew install
. それは同様にいくつかの同様の質問で言及されていた。運がない。 -
も試してみましたが
CC
,CXX
そしてCPP
のように環境変数を指定します。 ここで を読み込んでいたので、その効果はないと思いますが。gcc v4.6
コンパイラを拾っていたからです。
どのように解決するのですか?
この手順は私のために働いた。
OS: Maverick ルビー: 2.1.1
gem uninstall libv8
gem install therubyracer -v '0.11.3'
gem install libv8 -v '3.11.8.13' -- --with-system-v8
関連
-
[解決済み】OS X 10.9+にlibv8 gemをインストールする。
-
[解決済み】Ubuntuでのsqlite3-rubyのインストールエラー
-
[解決済み] ...』の違い (ダブルドット) と '...' の違い?(トリプルドット)の違いについて教えてください。
-
[解決済み] Rubyの"==="演算子は何をするのですか?重複] [重複
-
[解決済み] Rubyでモジュール変数を作成する
-
[解決済み] Rubyで「逆レンジ」を繰り返し処理できないのはなぜですか?
-
[解決済み] Ruby: selfを拡張する
-
[解決済み] ランダムなブール値を返す最良の方法
-
[解決済み] RubyでCtrl-cをキャプチャする
-
[解決済み] 10.10 Yosemite に therubyracer gem をインストールするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】OS X 10.9+にlibv8 gemをインストールする。
-
[解決済み] RubyのREPLを開くコマンドは何ですか?
-
[解決済み] ruby の rescue 節に複数のエラークラスを DRY に渡す方法
-
[解決済み] doブロックと中括弧{}の使い分け
-
[解決済み] ランダムなブール値を返す最良の方法
-
[解決済み] Rubyで2つの配列のマージとインターリーブ
-
[解決済み] メソッド名の最後にある「!」や「?」は何のため?
-
[解決済み] RubyでDateTime.nowをUTCに変換するには?
-
[解決済み] Rubyのモジュール/ミキシンからクラスメソッドを継承する
-
[解決済み] 10.10 Yosemite に therubyracer gem をインストールするには?