最近、gemバンドルを更新したかったのですが、libv8でインストールの問題が発生しました(therubyracerの要件):
Libv8(3.3.10.3)をネイティブ拡張/usr/local/rvm/rubies/Ruby-1.9.3-head/lib/Ruby/site_Ruby/1.9.1/rubygems/installer.rb:552:in `rescue in blockとともにインストールするbuild_extensions ':エラー:失敗しました gemネイティブ拡張のビルドに失敗しました。 (Gem :: Installer :: ExtensionBuildError) /usr/local/rvm/rubies/Ruby-1.9.3-head/bin/Ruby extconf.rb Pythonの確認... *** extconf.rbが失敗しました*** 何らかの理由でMakefileを作成できませんでした。おそらく 必要なライブラリやヘッダーが不足しています。詳細については、mkmf.logファイルを確認してください 詳細。構成オプションが必要になる場合があります。
therubyracer githubサイトの問題レポート が見つかりました。libv8をアンインストールして再インストールすることをお勧めしますが、これは私のUbuntu 11.04マシンでは機能しません。何かアイデアがありますか、それともしばらくの間古いバージョンにこだわっていますか?
しばらく試してみてください:
gem 'therubyracer'
gem 'libv8', '3.16.14.3'
役立つはずです。
また、新しいバンドラーのほうが優れています:gem install bundler --pre
私は古き良きUbuntu 10.04(x64)で同様の問題を抱えていました
プロジェクトを更新した後、Gemfileにはそれらのgemがありました
gem 'libv8', '~> 3.11.8'
gem "therubyracer", '>= 0.11.0beta1', :require => 'v8'
しかし、「バンドルインストール」を実行するとエラーが発生しました
Installing therubyracer (0.11.0beta1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/home/sseletskyy/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby extconf.rb
checking for main() in -lpthread... yes
creating Makefile
make
compiling array.cc
compiling script.cc
compiling object.cc
compiling constants.cc
compiling signature.cc
compiling value.cc
compiling locker.cc
compiling init.cc
compiling heap.cc
compiling date.cc
compiling message.cc
compiling accessor.cc
compiling context.cc
compiling exception.cc
compiling backref.cc
compiling trycatch.cc
compiling gc.cc
compiling handles.cc
compiling stack.cc
compiling template.cc
compiling function.cc
compiling primitive.cc
compiling rr.cc
compiling v8.cc
compiling invocation.cc
compiling string.cc
compiling external.cc
compiling constraints.cc
linking shared-object v8/init.so
/home/sseletskyy/.rvm/gems/Ruby-1.9.3-p194/gems/libv8-3.11.8.2-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a: could not read symbols: No such file or directory
collect2: ld returned 1 exit status
make: *** [init.so] Error 1
Gem files will remain installed in /home/sseletskyy/.rvm/gems/Ruby-1.9.3-p194/gems/therubyracer-0.11.0beta1 for inspection.
Results logged to /home/sseletskyy/.rvm/gems/Ruby-1.9.3-p194/gems/therubyracer-0.11.0beta1/ext/v8/gem_make.out
An error occured while installing therubyracer (0.11.0beta1), and Bundler cannot continue.
Make sure that `gem install therubyracer -v '0.11.0beta1'` succeeds before bundling.
そのブロックをすばやく解決するために私が働いたステップのリストは次のとおりです
Gem 'libv8'および 'therubyracer'のすべてのバージョンをアンインストールします
> gem rubyracerをアンインストールする
> gemアンインストールlibv8
Rubyracerを手動でインストールする
> gemインストールtherubyracer
取得:libv8-3.3.10.4-x86_64-linux.gem(100%)取得:therubyracer-0.10.1.gem(100%)ネイティブ拡張の構築。これにはしばらく時間がかかる場合があります... libv8-3.3.10.4-x86_64-linuxが正常にインストールされましたtherubyracer-0.10.1がインストールされました2 gemsがインストールされましたlibv8-3.3.10.4-x86_64-linuxのriドキュメントをインストールしています... therubyracerのriドキュメントをインストールしています-0.10.1 ... libv8-3.3.10.4-x86_64-linuxのRDocドキュメントのインストール... therubyracer-0.10.1のRDocドキュメントのインストール...
インストールされているgemのバージョンを確認する
>宝石リスト| grep libv
libv8(3.3.10.4 x86_64-linux)
>宝石リスト| grep therubyracer
therubyracer(0.10.1)
これらのバージョンをGemfileに設定して実行します
>バンドルインストール
概要。私の場合、最新バージョンを使用していなかったため、互換性のために悪いことを理解しています。しかし、少なくとも私は開発を続けることができました。
Ubuntu 11.04
gem "therubyracer", '0.11.1'
gem 'libv8'
Rubyracerとlibv8 gemをアンインストールします
バンドラーのgemバージョンを更新する
Lib8-devパッケージをインストールする
Sudo apt-get install libv8-dev
次にこれを実行します
Sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison Subversion imagemagick graphicsmagick libmagickcore-dev libmagickwand-dev
今すぐtherubyracerを手動でインストールします
gemインストールtherubyracer
Therubyracerとlibv8がインストールされます。
バンドルインストールを実行します
上記のすべての手順で問題が解決しました:)
私は最近同じ問題に遭遇しました。 RoR.org「Getting Started with Rails」ガイドの役立つ情報を次に示します。
CoffeeScriptをJavaScriptにコンパイルするにはJavaScriptランタイムが必要であり、ランタイムがないとexecjsエラーが発生します。通常、Mac OS XとWindowsにはJavaScriptランタイムがインストールされています。 Railsは、新しいアプリのコメント行にtherubyracer gemをGemfileに追加し、必要に応じてコメントを解除できます。therubyrhinoはJRubyユーザーに推奨されるランタイムであり、デフォルトで生成されたアプリのGemfileに追加されますJJSでサポートされているすべてのランタイムについて調査できます。
私が他の場所で読んだものに基づいて、therubyracer gemのWindowsサポートは「3.3.10.4」バージョンにはないようです(おそらく、より新しいバージョンにあるかもしれませんが、それまで読んでいませんでした)。 python 2.7をインストールしてコンパイルしましたが、後で環境設定プロセス中にエラーが発生します。
だから、これに帰着します。 rubyracerのドキュメントを確認してください here 。 'therubyracer'はこれらの機能を提供します(:
これらの機能を絶対に必要とする場合は、* nixに切り替えて、開発/実稼働環境のWindowsをドロップする必要があります。それ以外の場合は、私がやったことを実行し、「therubyracer」または「libv8」(Gemfileから削除)をインストールしないことを選択できます。この問題が発生しているサイトではJavaScriptに大きく依存していないので、両方のgemを無視しただけで、すべては(これまでのところ)うまくいっているようです。
これが他の誰かを助けてくれることを願っています!
Ubuntu 12.04
gem 'libv8', '3.11.8.3'
gem 'therubyracer', '0.11.0beta5'
上記のバージョンを指定することで、rubyracerの問題が解決しました。
上記の誰かが示唆したように、私は最新のバンドラーを使用しました:
gem install bundler --pre
必ずGemfile
でRubyを参照してください
gem 'therubyracer', :platform => :Ruby
bundle update
を実行します。
これらの端末コマンドを使用すると、Ubuntu 16.04で修正されました。
Sudo apt-get install g++
Sudo apt-get install build-essential