Mavericksに次のgemバージョンをインストールしようとしています
明らかにtherubyracer gemはlibv8に依存しています。
Libv8とは何ですか?私のちょっとした研究は、Google Chromeで使用されているJavaScriptライブラリの一種であると思われますか?
私はそれをインストールするのに苦労していましたが、 この素晴らしい投稿 は私のエラーとそれをバイパスする方法についての十分に説明された答えを持っていました。
そこで、libv8
をインストールしました
gem install libv8 -- --with-system-v8
これはgemをインストールしますが、gemに付属するバージョンではなくv8ライブラリのローカルシステムインストールを使用することは私の理解です?いずれにせよ、成功しました。
次のステップで、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
をインストールすることを選択しましたが、ローカルインストールが見つかりませんでした。
extconf.rb
とは何ですか?いくつかの場所で見ました。そして、具体的にgcc
コンパイラで何をしようとしているのですか?ありがとう!!
編集:
この手順はうまくいきました。
OS:Maverick Ruby: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 El Capitanでこの問題に直面している人たちにとって、 この解決策 therubyracerの問題スレッドから、最終的に私にとってうまくいったのは:
brew tap homebrew/versions
brew install v8-315
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install
brew install gcc
を事前に実行していましたが、これが実際に必要かどうかはわかりません。
最初にlibv8 gemをアンインストールしてから、rubyracerをインストールしてから、libv8をインストールしてください
gem uninstall libv8
gem install therubyracer
gem install libv8 -- --with-system-v8
Tertom's solution githubに投稿 それぞれの提案された他のすべてのソリューションを試した後、解決しました github issue そしてここに。
システム構成はまったく同じでした。
これはel capitanにあるので、質問に対する正確な答えではありませんが、この情報は役に立つかもしれません。
可視性のためにここで引用しています:
同じ問題を解決しました
- MacOS 10.11.2
- Ruby 1.9.3
- libv8 3.16.14.13
- therubyracer 0.12.2
-
brew tap homebrew/versions brew install v8-315 brew link --force v8-315 bundle install brew unlink v8-315
Libv8もインストールできない場合、
gem install libv8 --with-system-v8
または
bundle config build.libv8 --with-system-v8
上記の答えは私にはうまくいきませんでした。 my bundler config has disable-shared-gems
有効にすると、追加の問題が発生します。
Yosemite 10.10.1、Rails 3.2.x、and Ruby 1.9.3p550。
次のスニペットは bin/setup
は私のために問題を修正しました。
if ! bundle show therubyracer; then
bundle config build.libv8 --with-system-v8
gem install --install-dir vendor/bundle libv8 -v 3.16.14.7
gem install libv8 -v 3.16.14.7
gem install --install-dir vendor/bundle therubyracer
fi
上記の問題の回避策を見つけました。
これは、libv8とtherubyracerの間の互換性に優れています。
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v '0.10.2'
両方のバージョンが私と互換性があるので、これはうまくいくはずです。最初はtherubyracerのバージョン0.12.0をインストールしようとしていたので、問題に直面していました。バージョン0.10.2に切り替えると、すべて正常に機能しました。
私の現在のOS:マーベリックス
この問題はMacOS Mojave 10.14.2
そして、パッケージv8-315
がインストールされ、フォルダ名は何でしたか。私の場合、ここにありました/usr/local/opt/[email protected]
。
これを修正するために、次に実行しました:
brew install v8-315
gem install libv8 -v '3.16.14.15' -- --with-system-v
gem install therubyracer -v '0.12.2' -- --with-system-v8 --with-v8-dir=/usr/local/opt/[email protected]
bundle install
ほぼ2日間頭を痛めた後、これはうまくいきました。
rvm install 2.2.2
gem install Rails
bundle install