J'essaie d'installer les versions suivantes de gem sur Mavericks
Les gemmes thubyracer dépendent évidemment de libv8.
Qu'est-ce que libv8? Mes recherches semblent indiquer que c'est une sorte de bibliothèque javascript utilisée par Google Chrome.
J'avais du mal à l'installer, mais ce super post avait à la fois mon erreur et une réponse bien expliquée sur la manière de la contourner.
J'ai donc installé libv8
avec
gem install libv8 -- --with-system-v8
Si j'ai bien compris, cela installe la gem mais utilise l'installation de la bibliothèque v8 sur mon système local au lieu de ... la version fournie avec la gem? De toute façon, c'était réussi.
Lors de l'étape suivante, j'ai eu du mal à installer therubyracer
gem. Je ne suis pas tout à fait sûr de ce que fait ce joyau, mais simplement qu'il s'agit d'une dépendance d'un Rails que j'essaie de bundle install
.
Cela me donne l'erreur suivante:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** 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/jeeves.butler/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/jeeves.butler/.rvm/gems/Ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/Ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/Ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/Ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
D'après ce que je peux rassembler, j'ai choisi d'installer libv8
en utilisant ma bibliothèque V8 locale au lieu de celle fournie avec libv8
_, mais cette installation locale n'a pas pu être localisée.
extconf.rb
? Je l'ai vu à quelques endroits. Et qu'est-ce qu'il essaie de faire avec le compilateur gcc
en particulier?Merci!!
EDIT:
J'ai essayé cette solution de désinstaller libv8 et de le réinstaller via brew install
. Cela a également été mentionné dans quelques questions similaires. Pas de chance.
J'ai aussi essayé les variables d'environnement CC
, CXX
et CPP
comme décrit ici , bien que je ne pense pas que cela ait un effet était déjà ramasser mon gcc v4.6
compilateur.
Cette démarche a fonctionné pour moi.
Système d'exploitation: Maverick Ruby: 2.1.1
gem uninstall libv8
gem install therubyracer -v '0.11.3'
gem install libv8 -v '3.11.8.13' -- --with-system-v8
Pour ceux confrontés à ce problème dans OS X El Capitan, cette solution à partir d'un fil de discussion thérubyracer était ce qui a finalement fonctionné pour moi:
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
J'avais aussi couru brew install gcc
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Et je ne suis pas sûr que cela soit réellement nécessaire.
Essayez d’abord de désinstaller libv8 gem, puis installez rubyracer, puis libv8
gem uninstall libv8
gem install therubyracer
gem install libv8 -- --with-system-v8
Tertom's solution posté sur github l'a résolu pour moi, après avoir essayé toutes les autres solutions proposées sur le respect question de github et ici.
J'avais exactement la même configuration système.
Ceci est sur el capitan, donc pas une réponse exacte à la question, mais les gens pourraient trouver cette information utile.
Je le cite ici pour plus de visibilité:
Résolu le même problème
- MacOS 10.11.2
- Ruby 1.9.3
- libv8 3.16.14.13
- therubyracer 0.12.2
-
brew tap homebrew/versions brew install v8-315 brew link --force v8-315 bundle install brew unlink v8-315
Si vous ne pouvez pas non plus installer libv8,
gem install libv8 --with-system-v8
ou
bundle config build.libv8 --with-system-v8
Les réponses ci-dessus n'ont pas fonctionné pour moi; ma config bundler a disable-shared-gems
activé ce qui provoque des problèmes supplémentaires.
J'utilise Yosemite 10.10.1, Rails 3.2.x, et Ruby 1.9.3p550.
L'extrait suivant dans mon bin/setup
a résolu le problème pour moi.
if ! bundle show therubyracer; then
bundle config build.libv8 --with-system-v8
gem install --install-dir vendor/bundle libv8 -v 3.16.14.7
gem install libv8 -v 3.16.14.7
gem install --install-dir vendor/bundle therubyracer
fi
J'ai trouvé une solution de contournement au problème ci-dessus.
C'est plus une compatibilité entre libv8 et therubyracer.
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v '0.10.2'
Cela devrait fonctionner correctement car les deux versions sont compatibles avec moi. Au départ, j'essayais d'installer la version 0.12.0 pour therubyracer et je faisais face au problème. Une fois que je suis passé à la version 0.10.2, tout a bien fonctionné.
Mon OS actuel: Mavericks
J'ai ce numéro pour MacOS Mojave 10.14.2
et j’ai pu résoudre ce problème lorsque j’ai trouvé où le paquet v8-315
était installé et quel était le nom du dossier. Dans mon cas, c'était ici /usr/local/opt/[email protected]
.
Pour résoudre ce problème, j'ai exécuté ensuite:
brew install v8-315
gem install libv8 -v '3.16.14.15' -- --with-system-v
gem install therubyracer -v '0.12.2' -- --with-system-v8 --with-v8-dir=/usr/local/opt/[email protected]
bundle install
Après m'être cassé la tête pendant presque deux jours, cela a fonctionné pour moi.
rvm install 2.2.2
gem install Rails
bundle install