web-dev-qa-db-ja.com

libv8のインストールエラー:エラー:gemネイティブ拡張のビルドに失敗しました

Railsプロジェクトを作成しました。

Rails new test_bootstrap.

成功しました。

プロジェクトディレクトリに移動し、宝石を追加しました

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' 

同じエラーをスローします。

165
Canna

これを試してください:

gem install libv8 -v '3.16.14.3' -- --with-system-v8

注:libv8はtherubyracerが使用するV8エンジンのインターフェースであるため、V8がすでにインストールされている場合でもlibv8を使用する必要がある場合があります。自分用にビルドするのではなく、独自のV8インストールを使用する場合は、--with-system-v8オプションを使用します。

詳細については、 githubのlibv8 のドキュメントをご覧ください。

563
Gopal S Rathore

Libv8/therubyracerの問題を解決する方法

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
145
Arpit Shah

自作では、このエラーを解決するのに役立ちます。

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

Rubyracer Githubの問題で見られます。

41
coding addicted

上記のコマンドを試してみましたが、個々のgemをインストールするのに非常にうまく見えますが、Bundlerユーザーの場合は、bundle configを使用する必要があります

つかいます

bundle config build.libv8 --with-system-v8 

そして

bundle config build.therubyracer --with-system-v8

特定のgemのインストール中に使用されるパラメーターを取得するようにバンドラーを構成するには

29
Anand Chavan

Windowsではtherubyracer gemは必要ないと思います。 V8エンジンを使用するjavascriptランタイムです。したがって、libv8をインストールしようとしています。

Gemfileからgemを安全に削除できます。

Railsは、どのランタイムを見つけても使用できます。 execjsnodejsなどはすべて可能なオプションです。

Microsoftは、Windowsにjavascript用のJScriptランタイムを既に埋め込み、Railsがそれを使用しています。 詳細はこちらを参照

7
Litmus

問題を修正する他の回避策は、Gemfileでそれらを分離することです

group :production do
 gem 'libv8', '~> 3.11.8.3'
 gem 'therubyracer', :platform => :Ruby
end

そして、bundleコマンドを実行します:bundle install --without production

5
Arman Ortega

それは私のために働く。 Gemfileに入れてください

gem 'libv8'、 '〜> 3.16.14.7'

2
Hrk

私の問題はtherubyracerとはまったく関係なく、単にlibv8 gemと@ rishav-bhardwajが--with-system-v8がトリックを行わなかったので、代わりにexecする必要がありました

bundle update

それから

bundle install

そして最後に

Bundle complete!

エラーはなくなりました!

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. Make sure that `gem install libv8 -v '3.16.14.7'` succeeds before bundling.

2
d1jhoni1b

使用する代わりにこのgemをインストールすることもできませんでした

--with-system-v8

一度やってみてくださいバンドル更新私にとってはうまくいきました

2
Rishav Bhardwaj

これはlibv8とは関係がなく、therubyracerとは関係があると思います。

Railsアプリでバンドルインストールを実行しているときに同じエラーを受け取りました。同様にこれに遭遇した場合、次のようにバンドルの外にgemをインストールしてみてください:

gem install therubyracer

次に、バンドルインストールを実行します。これがあなたにも役立つことを願っています。

0
Sean McMills

で試す

gem "therubyracer"、 "〜> 0.10.2" to Gemfile

また、依存するgem libv8(3.3.10.4)がインストールされ、gemネイティブ拡張のビルドの問題が解決されました。

0
rahul patil

以下のコマンドを使用して、libv8 3.16.14.7の問題を解決しました。

gem install libv8 -v '3.16.14.7' -- --with-system-v8

そして、bundle installは正常に完了しました。

0
Faisal Raza