Comment installer therubyracer gem sur 10.10 Yosemite?

97

Je n'arrive pas à installer la gemme therubyracer sur Yosemite 10.10.

Voici le journal:

11:53 $ gem installer libv8 -v '3.16.14.3' - --with-system-v8


Construire des extensions natives avec: '--with-system-v8'
Ça pourrait prendre un moment...
Libv8-3.16.14.3 installé avec succès
Analyse de la documentation pour libv8-3.16.14.3
Installation de la documentation ri pour libv8-3.16.14.3
Installation de la documentation pour libv8 terminée après 0 seconde
1 gemme installée


02:05 $ gem installer therubyracer -v '0.12.1' - --with-system-v8


Construire des extensions natives avec: '--with-system-v8'
Ça pourrait prendre un moment...
ERREUR: Erreur lors de l'installation de therubyracer:
    ERREUR: échec de la création de l'extension native gem.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
vérification de main () dans -lpthread ... oui
vérification de main () dans -lobjc ... oui
vérification de la v8.h ... non
*** extconf.rb a échoué ***
Impossible de créer Makefile pour une raison quelconque, probablement le manque de nécessaire
bibliothèques et / ou en-têtes. Consultez le fichier mkmf.log pour plus de détails. Tu peux
besoin d'options de configuration.

Options de configuration fournies:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --avec-make-prog
    --sans-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / versions / 2.1.2 / bin / ruby
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --without-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --without-v8-dir
    --avec-v8-inclure
    --without-v8-include = $ {v8-dir} / include
    --with-v8-lib
    --without-v8-lib = $ {dir-v8} / lib
/usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure ': Vous avez choisi pour utiliser la version de V8 trouvée sur votre système (Libv8 :: Location :: System :: NotFoundError)
et * pas * celui qui est fourni avec le rubygem libv8. cependant,
il n'a pas pu être localisé. veuillez vous assurer que vous disposez d'une version de
v8 compatible avec la version 3.16.14.3 installée. Tu peux
besoin d'options spéciales --with-v8-dir si c'est dans un non-standard
emplacement

Merci,
Le Mgmt

    depuis /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7: dans `configure_makefile '
    de extconf.rb: 32: dans `` '

extconf a échoué, code de sortie 1

Les fichiers Gem resteront installés dans /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 pour inspection.
Résultats enregistrés dans /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make. en dehors
Nicolas Blanco
la source
Vous aussi avez des problèmes avec Yosemite: D
Dalorzo
Je sais, j'aime être un aventurier :-P
Nicolas Blanco
1
J'ai aussi des problèmes avec cela, j'ai essayé de faire l'installation de brew v8, mais cela n'a pas fonctionné
acrogenesis
@sandelius check my answer
mmln

Réponses:

68
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

puis regroupez simplement les joyaux de votre projet

c'est la seule façon dont cela a fonctionné pour moi sur 10.10 (ruby 2.1.2)

mmln
la source
2
merci mais c'est libv8, je parlais de gemme therubyracer.
Nicolas Blanco
2
c'est ce dont vous avez besoin pour éviter les problèmes avec therubyracer
mmln
2
Je m'en fiche si j'enfreins les règles. Je ne peux pas vous remercier assez. Vous m'avez sauvé une échéance de projet énorme.
AKWF
1
Merci, ça marche pour moi, juste pour le copieur / coller comme moi, nous sommes maintenant à l'installation de gem pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour
2
Il convient également de mentionner que si vous utilisez un Gemfile et que vous rencontrez toujours des difficultés pour installer therubyracer, c'est probablement parce qu'il existe une version différente de libv8 qui a déjà été ajoutée au Gemfile.lock. Ajoutez simplement gem 'libv8', '3.16.14.3'(ou quelle que soit la version exacte de la libv8 que vous venez d'installer manuellement) et exécutez la mise à jour du bundle libv8. Cela devrait alors installer therubyracer.
Jon Cairns
257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

c'est la seule façon dont cela a fonctionné pour moi sur 10.10 (ruby 2.1.2)

Ou essayez d' gem install libv8 -v 'XX.XX.XX' -- --with-system-v8ajouter la version du bijou :)

MISE À JOUR pour Mac OS Catalina:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer
Wylkon
la source
3
Oui, c'est celui qui aide sans aucune bizarrerie. Même si vous obtenez juste une erreur libv8, faites-le! Merci.
pjammer
2
Oui. C'est la bonne façon de procéder. Surtout si vous aviez reconstruit votre ruby ​​avec les derniers outils de ligne de commande 10.10.
Pankaj Tyagi
3
A travaillé pour moi avec Ruby 2.1.3 sous OS X Yosemite.
Sarah Vessels
4
En plus de cela, si vous utilisez un bundler et avez un Gemfile, vous devrez peut-être l'ajuster à la dernière version que vous venez d'installer. Par exemple, je devais (sur OS X Yosemite) faire ce qui suit: gem 'therubyracer', '0.12.1'(ajouté la version). Puis supprimé Gemfile.lock et fait bundle install. Ça fonctionne bien.
paneer_tikka
2
Cela a fonctionné pour moi aussi, sur El Capitan. Je pense que c'est beaucoup plus simple et devrait être la réponse acceptée.
rcd
42

Aucune des réponses ne fonctionne pour moi cette fois. J'ai trop utilisé ceci:

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

Vu sur les problèmes de rubyracer Github.

J'espère que cela aide quelqu'un d'autre.

codage accro
la source
Merci pour cela. Aucune des autres approches ne fonctionnera sur El Capitan en utilisant des versions modernes des gemmes dépendantes. (therubyracer est terriblement derrière libv8 à ce stade.)
Matt Mitchell
Malheureusement, vous avez raison ... Cette erreur me rend fou chaque fois que je change de version ruby.
coding addicted
1
tap homebrew / versions est maintenant obsolète, donc cela ne fonctionne plus.
mattp
1
En fait, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)ça marche mieux pour moi. Le dir dans mon mac est en fait/usr/local/opt/[email protected]
Junji Zhi
@JunjiZhi bro votre solution a fonctionné pour moi
shubham mishra
26

Peut-être que ce sera utile pour quelqu'un mais j'ai eu des problèmes pour installer therubyracer (à cause des problèmes avec libv8) la solution était de désinstaller toute la libv8 que j'avais installée. Installez therubyracer

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

J'espère que ça aidera quelqu'un.

Jakub Troszok
la source
Cela semble avoir fonctionné pour moi. Cependant , je voudrais souligner que la meilleure façon de désinstaller toutes les versions de la gemme libv8 est: gem uninstall libv8 -a -x. Si vous utilisez un gestionnaire de version ruby ​​(par exemple rbenv, etc.), cela ne fonctionne que pour votre version actuelle de ruby ​​(au cas où cela ne serait pas évident).
xentek le
👍 cette solution a fonctionné pour moi - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27 révision 41675)
sameera207
13

Il semble que cela ait été corrigé en amont. Ce qui a fonctionné pour moi et @aurels et @Mike Causer et @Juanda était:

bundle update libv8
Martin T.
la source
7

Cela a très bien fonctionné pour moi sur mon Yosemite et Ruby 2.1.5 (Ruby à RVM)

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

Auparavant, cela me donnait une erreur Gem::Ext::BuildError: ERROR: Failed to build gem native extension.pour libv8 gem version 3.16.14.3

Rohan Daxini
la source
7

Seulement cela fonctionne pour moi dans mon Yosemite, Ruby 2.1.2:

gem install libv8 -v '3.16.14.3' -- --with-system-v8
brew link --overwrite v8-315 --force
gem install therubyracer -v '0.12.2' -- --with-system-v8
aquajach
la source
Seul ce problème résolu d'installation de rubyracer pour ruby 1.9.3p484etrubyracer 0.12.3
Michael Klishevich
6

J'ai pu continuer avec ruby ​​racer après rm Gemfile.lock

au préalable: j'ai installé la v8 via brew install v8, puisgem install libv8 -v '3.16.14.3' -- --with-system-v8

et j'utilise 10.10 Yosemite

CloudMagick
la source
4

Ils ont corrigé ce problème dans la version la plus récente de libv8. Voir: https://github.com/cowboyd/libv8/issues/123

Vous devez installer à partir du repo github, dans les rails, j'ai ajouté une ligne à mon fichier gemme comme ceci gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

ÉDITER:

Cela ne résout apparemment qu'une partie du problème. J'ai installé la nouvelle version de libv8, mais maintenant le rubyracer est toujours à la recherche de l'autre je pense? Toujours à la recherche.

Borromakot
la source
3

J'ai eu le même problème sur Yosemite. Ma solution est similaire à ce qui apparaît ci-dessus.

Utilisez gem uninstall libv8pour supprimer tout ce qui pourrait être installé.

Laissez therubyracer dans votre Gemfile, mais supprimez toute référence explicite à libv8.

Courez bundle install.

libv8 s'est ensuite installé correctement en tant que dépendance.

Martin Streicher
la source
C'était mon problème. J'avais plusieurs versions de libv8 qui se battaient. Les éliminer et laisser le bundler résoudre la dépendance était la bonne chose à faire.
DavidMann10k
2

Réponse mise à jour pour 2018.

Je suis sur High Sierra, sur Homebrew 1.6.1

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@3.15/

C'est ce qui a fonctionné pour moi.

Le mérite revient à @ coding-addicted pour sa réponse originale .

Alexggordon
la source
1

Après des heures à essayer simplement de mettre à niveau Ruby a fonctionné:

brew install ruby 

puis en ajoutant ce qui suit au fichier gem:

gem 'libv8'  
gem 'therubyracer' 
Ashwin Tang
la source
1

Un avertissement à tous ceux qui auraient pu avoir mon problème: j'ai fini par désinstaller ma version ruby ​​dans RVM puis la réinstaller. Cela semblait utiliser les dépendances correctes dans la dernière version des outils xcode pour compiler ruby.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x
Colsen
la source
0

J'ai fait ce qui suit

gem install therubyracer

qui installe maintenant therubyracer 0.12.1qui installe la dépendance libv8 (3.16.14.7 x86_64-darwin-14)qui s'est installée sans erreur.

J'ai fait cela en utilisant ruby 2.1.5que j'ai installé via:

CC=/usr/bin/gcc rbenv install 2.1.5

ce que j'ai fait après avoir couru brew upgrade ruby-builds.

Après l'installation ruby 2.1.5, j'ai aussi couru

gem upgrade --system

obtenir rubygems-update 2.4.5

Chris Beck
la source
0

cela se produit également en raison de certains conflits avec la libv8, bien que vous puissiez simplement attribuer une version au rubyracer et il sera installé:

modifiez ce qui suit dans le fichier gem:

gemme 'therubyracer', '~> 0.12.1'

et effectuez l'installation groupée

abcd_win
la source
0

Cette solution a fonctionné pour moi après la solution de Jakub Troszok ci-dessus avec juste un changement mineur

gem uninstall libv8
gem install therubyracer -v '0.12.1'
    Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
    Successfully installed libv8-3.16.14.19-x86_64-darwin-18
    Building native extensions.  This could take a while...
    Successfully installed therubyracer-0.12.1
    Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
    Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
    Parsing documentation for therubyracer-0.12.1
    Installing ri documentation for therubyracer-0.12.1
    Done installing documentation for libv8, therubyracer after 0 seconds
    2 gems installed
gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
bundle install
dchhatani
la source
Veuillez indiquer quel est le changement mineur et essayez d'expliquer pourquoi il fonctionne. Puisque vous répondez à une question vieille de 4 ans, vous devez également ajouter des détails sur les versions applicables (votre réponse n'a peut-être pas été pertinente alors).
Michal
0

Utiliser le répertoire homebrew de la v8 pour --with-v8-dir=/usr/local/Cellar/[email protected]/3.15.11.18_1, au lieu de /usr/local/opt/v8-315, est ce qui a fonctionné pour moi, dans le codage de la réponse d'un accro.

Ceci est visible dans le Summaryde la bière commande d' installation, brew install v8-315.

rouleau de mousse
la source