webentwicklung-frage-antwort-db.com.de

therubyracer-Installationsfehler

Wie Sie unten sehen können, lässt sich libv8 zwar gut installieren, therubyracer jedoch nicht. Ich verwende Mac 10.7.4.

~/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1> gem install libv8
Building native extensions.  This could take a while...
Successfully installed libv8-3.11.8.3
1 gem installed
Installing ri documentation for libv8-3.11.8.3...
Installing RDoc documentation for libv8-3.11.8.3...

~/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1> gem install therubyracer
Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
    ERROR: Failed to build gem native extension.

        /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/bin/Ruby extconf.rb
checking for main() in -lobjc... *** 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/rdp/.rvm/rubies/Ruby-1.9.3-p125/bin/Ruby
    --with-objclib
    --without-objclib
/Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:461:in `try_link0'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:476:in `try_link'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:619:in `try_func'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:845:in `block in have_library'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/1.9.1/mkmf.rb:840:in `have_library'
    from extconf.rb:10:in `<main>'


Gem files will remain installed in /Users/rdp/.rvm/gems/Ruby-1.9.3-p125/gems/therubyracer-0.10.1 for inspection.
Results logged to /Users/rdp/.rvm/gems/Ruby-1.9.3-p125/gems/therubyracer-0.10.1/ext/v8/gem_make.out

Hier ist der mkmf.log, der sich in ~/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/gems/1.9/gems/therubyracer-0.10.1/ext/v8> befindet.

Optionen zum Bearbeiten der Dateipuffer-Tools 

"/usr/bin/gcc-4.2 -o conftest -I/Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/include/Ruby-1.9.1/x86_64-darwin11.3.0 -I/Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/include/Ruby-1.9.1/rub\
y/backward -I/Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/include/Ruby-1.9.1 -I. -I/Users/rdp/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-\
parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-functio\
n-declaration  -fno-common -pipe conftest.c  -L. -L/Users/rdp/.rvm/rubies/Ruby-1.9.3-p125/lib -L/Users/rdp/.rvm/usr/lib -L.      -lruby.1.9.1  -lpthread -ldl -lobjc "
checked program was:
/* begin */
1: #include "Ruby.h"
2:
3: int main() {return 0;}
/* end */
35
Rose Perrone

Sie können den Libv8 aus dem Sud anstelle des aus Gem verwenden. Sie können dies tun, indem Sie die folgenden Befehle ausführen:

$ gem uninstall libv8
$ brew install v8
$ gem install therubyracer
82
AMing

Für ein älteres Projekt musste ich die Version 0.10.1 von Rubyracer für Mavericks verwenden (Bootstrap hängt davon ab)

Also musste ich eine ältere Version von gcc verwenden

  1. bearbeiten Sie Ihre .zshrc oder .bashrc

    export CC=/usr/local/Cellar/Apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
    export CXX=/usr/local/Cellar/Apple-gcc42/4.2.1-5666.3/bin/g++-4.2
    export CPP=/usr/local/Cellar/Apple-gcc42/4.2.1-5666.3/bin/cpp-4.2
    
  2. stellen Sie sicher, dass Sie alle älteren Versionen von libv8 deinstalliert haben

    gem uninstall libv8
    
  3. installieren Sie Ihre Version von Therubyracer

    gem install therubyracer -v=0.10.1
    
10
rider_on_rails

Für Linux:

Der folgende Code ist natürlich korrekt

$ gem uninstall libv8

$ gem install therubyracer

Aber manchmal hilft es nicht, weil Sie make nicht programmiert haben. ZU BEGINN Sie müssen make installieren. Führen Sie dazu Folgendes aus:

Sudo apt-get install build-essential

Und erst danach:

gem install therubyracer

5
Tombery

Auf Mavericks müssen Sie nur auf therubyracer 0.12.0 aktualisieren

3
jackocnr

Die Lösung, die für mich funktionierte, bestand darin, diese Schritte am 10.7.4 zusammenzustellen

export CC=gcc-4.2

Sudo ln /usr/bin/gcc /usr/bin/gcc-4.2

gem uninstall libv8
gem install therubyracer
1
petenelson

Mac 10.10.5, Ruby 2.1.0 hat für mich funktioniert:

gem uninstall libv8
gem uninstall therubyracer

brew upgrade gcc
brew install v8

bundle config --local build.libv8 --with-cxx=/usr/local/bin/gcc-6
gem install libv8 -v '3.16.14.17' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315

bundle install # worked !
1
Simon Franzen

Auf Mountain Lion 10.8 ist kein C-Compiler vorinstalliert. Sie müssen das "Command Line Tools" -Paket von Apple selbst herunterladen und installieren und anschließend which gcc ausführen, um zu bestätigen, dass es installiert ist. Von da an sollte alles gut laufen.

0
Charles Kirk

Unter OS X 10.7 fand ich tatsächlich heraus, dass das "Command Line Tools" -Paket nicht genug war, ich musste das komplette XCode-Paket installieren, dann funktionierte die gem-Installation.

0
Magnus

Ich hatte das gleiche Problem, als ich von OSX Mountain Lion auf OSX Mavericks aufgerüstet habe.

Ein Upgrade von Ruby-1.8.7-p354 auf Ruby-1.8.7-375 hat mich ausgereicht. Wenn Sie sich auf Ruby-1.93-p125 befinden, möchten Sie vielleicht ein Upgrade auf 1.9.3-rc1 durchführen (was bereits über p484 liegt).

libv8 (3.16.14.3-x86_64-darwin-13) und die therubyracer (0.12.0) gems problemlos installiert.

vorausgesetzt, Sie verwenden rbenv:

rbenv install 1.9.3-rc1
rbenv rehash
rbenv Shell 1.9.3-rc1
bundle install
0
nelsonenzo

Laut https://github.com/cowboyd/therubyracer/issues/420#issuecomment-253592865

gem uninstall therubyracer
gem uninstall libv8
brew uninstall v8
brew install v8
gem install libv8
gem install therubyracer

Es hat mir geholfen. Parameter: Ruby 2.3.3, Rails 4.2.9

0
Neodelf

Ich hatte bis jetzt genau das gleiche Problem.

Dieser Link hat mich gerettet. 

zusammenfassend müssen Sie Folgendes tun:

$ gem uninstall libv8
$ gem install therubyracer

bevor ich dieses Problem behoben habe, hatte ich v8 in meinem Mac installiert. ich weiß nicht, ob das geholfen hat, da es etwas mit js interpreter zu tun hat, dachte ich, es könnte helfen.

0
senration

@ Haegins Antwort in https://github.com/cowboyd/libv8/issues/205

brew uninstall v8
brew install v8-315
gem uninstall -a libv8
gem uninstall -a therubyracer
gem install libv8 -v '3.16.14.17' -- --with-system-v8
gem install therubyracer -v '0.12.2' -- --with-v8-dir=$(brew --prefix v8-315)
0
张健健