web-dev-qa-db-fra.com

erreur d'installation de therubyracer

Comme vous pouvez le voir ci-dessous, libv8 s’installe correctement, mais pas Thubyracer. J'utilise 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

Voici le mkmf.log, situé dans ~/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/gems/1.9/gems/therubyracer-0.10.1/ext/v8>.

Fichier Édition Options Tampons Outils Aide 

"/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

Vous pouvez utiliser le Libv8 de la bière au lieu de celui de Gem. Vous pouvez le faire en suivant les commandes:

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

Pour un projet plus ancien, je devais utiliser la version 0.10.1 de rubyracer sur des francs-tireurs (le bootstrap en dépend)

J'ai donc dû utiliser une ancienne version de gcc

  1. éditez votre .zshrc ou .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. assurez-vous d'avoir désinstallé toutes les anciennes versions de libv8

    gem uninstall libv8
    
  3. installez votre version de therubyracer

    gem install therubyracer -v=0.10.1
    
10
rider_on_rails

Pour Linux:

Le code ci-dessous est bien sûr correct

$ gem uninstall libv8

$ gem install therubyracer

Mais parfois, cela n'aide pas parce que vous n'avez pas programmé makeEN PREMIER vous devez installer make. Pour cela, lancez:

Sudo apt-get install build-essential

Et seulement après cela:

gem install therubyracer

5
Tombery

Sur Mavericks, il vous suffit de mettre à jour therubyracer 0.12.0

3
jackocnr

La solution qui a fonctionné pour moi a été de regrouper ces étapes le 10.7.4.

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 cela a fonctionné pour moi:

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

Sur Mountain Lion 10.8, il n’est pas fourni avec un compilateur C. Vous devez télécharger et installer le package "Outils de ligne de commande" d'Apple, puis exécuter which gcc pour vérifier qu'il est installé. Tout devrait bien se dérouler à partir de là.

0
Charles Kirk

Sur OS X 10.7, j’ai en fait constaté que le package "Outils de ligne de commande" ne suffisait pas, je devais installer le package complet XCode, puis l’installation de gem a fonctionné.

0
Magnus

J'ai eu le même problème lors de la mise à niveau d'OSX Mountain Lion vers OSX Mavericks.

Passer de Ruby-1.8.7-p354 à Ruby-1.8.7-375 a été très utile. Si vous êtes sur Ruby-1.93-p125, vous pouvez essayer de passer à la version 1.9.3-rc1 (qui est déjà au-dessus de p484)

libv8 (3.16.14.3-x86_64-darwin-13) et les gems therubyracer (0.12.0) installés sans problème.

en supposant que vous utilisiez rbenv:

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

Selon 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

Ça m'a aidé. Paramètres: Ruby 2.3.3, Rails 4.2.9

0
Neodelf

J'ai eu exactement le même problème jusqu'à maintenant.

Ce lien m'a sauvé. 

pour résumer, vous devez faire ceci:

$ gem uninstall libv8
$ gem install therubyracer

avant de résoudre ce problème, j'avais installé v8 dans mon mac. Je ne sais pas si cela a aidé, puisqu'il semble que js ait à faire avec js interpreter, j'ai pensé que cela pourrait aider.

0
senration