J'essaie d'installer libv8 3.16.14.3 mais j'obtiens une erreur sous OSX Mavericks avec la dernière version stable stable et Ruby-1.9.3-p125.
Voici le résultat de l'exécution de la commande 'gem install libv8':
~/src(branch:master) » gem install libv8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
/Users/me/.rvm/rubies/Ruby-1.9.3-p125/bin/Ruby extconf.rb
creating Makefile
Compiling v8 for x64
Using python 2.7.5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information.
make[1]: *** [/Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a] Error 1
make: *** [x64.release] Error 2
/Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
from /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each'
from /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!'
from /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!'
from extconf.rb:7:in `<main>'
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_Arch=x64 \
-S.x64 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/conversions.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/diy-fp.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/dtoa.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fast-dtoa.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fixed-dtoa.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/once.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparse-data.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser-api.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/scanner.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/strtod.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/token.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/unicode.o
CXX(target) /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/utils.o
LIBTOOL-STATIC /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a
Gem files will remain installed in /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3 for inspection.
Results logged to /Users/me/.rvm/gems/Ruby-1.9.3-p125@proj-Rails3-Ruby19/gems/libv8-3.16.14.3/ext/libv8/gem_make.out
Cela est dû au fait que OS X 10.9+ utilise la version 4.8 de GCC. Ceci n'est pas officiellement pris en charge dans les anciennes versions de libv8, comme indiqué dans la demande d'extraction ( https://github.com/cowboyd/libv8/pull/95 ). S'il vous plaît essayez de bump la version de libv8 dans votre Gemfile (ou) un bundle update
devrait suffire. J'espère que cela t'aides.
De la libv8 README
Apportez votre propre V8
Puisque libv8 est l'interface du moteur V8 utilisé par therubyracer, vous devrez peut-être utiliser libv8, même si vous avez déjà installé V8. Si vous souhaitez utiliser votre propre installation V8 plutôt que de la construire pour vous, utilisez l'option --with-system-v8.
Utiliser RubyGems:
bijou installer libv8 [-v YOUR_VERSION] - --with-system-v8
Utiliser Bundler (dans votre Gemfile):
bundle config build.libv8 --with-system-v8
Veuillez noter que si vous avez l’intention de faire fonctionner votre propre V8, vous devez installer à la fois la V8 et ses en-têtes (disponibles dans libv8-dev pour les distributions Debian).
Apportez votre propre compilateur
Vous pouvez spécifier un compilateur de votre choix en définissant la variable d'environnement CXX avant la compilation ou en ajoutant l'option --with-cxx = à la configuration de l'ensemble:
bundle config build.libv8 --with-cxx = clang ++
Modifier:
Si ce problème est causé par therubyracer
, essayez ce qui suit, comme suggéré par rider_on_Railsici :
bijou désinstaller libv8
gem installer therubyracer -v YOUR_Ruby_RACER_VERSION
bijou installer libv8 -v YOUR_VERSION - --with-system-v8
Vous pouvez réellement installer cette version sur Mavericks:
gem install libv8 -v 3.11.8.17 -- --with-system-v8
Je peux confirmer que cela fonctionne avec rbenv et Ruby 1.9.3p448
El Capitan Solution pour moi:
$ brew install v8
$ gem install libv8 -v REQUIRED_LIBV8_VERSION -- --with-system-v8
Où REQUIRED_LIBV8_VERSION
était pour moi 3.16.14.7
, mais vous devez vérifier lequel est celui dont vous avez besoin dans votre bundle (il s'agissait de celui pour Rails 4.2.5
)
Vous devrez peut-être aussi exécuter les commandes ci-dessus en tant que superutilisateur (si vos gems et vos bibliothèques système sont globaux)
Lorsque j'ai essayé la réponse acceptée, libv8 a été installé avec succès avec gem install libv8
, mais bundle install
a échoué sous libv8. Je pense que bundle install
essayait d'installer une version différente de libv8. J'ai pu trouver une solution qui a fonctionné pour moi.
J'avais besoin de libv8 car therubyracer en dépend. Pour l’installer, j’ai noté la version qui échouait dans le journal gem_make.out
de therubyracer. (Le chemin d'accès au journal gem_make.out
sera dans le message d'échec.) Dans mon cas, il s'agissait de 3.16.14.7. (Cette version changera probablement avec le temps, si vous lisez ceci dans trois ans.) J'ai ensuite fait ceci:
gem install libv8 -v 3.16.14.7 -- --with-v8-lib
<- note l'indicateur différent de la réponse acceptée
qui a permis que cela fonctionne:
gem install therubyracer
ce qui m'a permis de compléter mon bundle install
.
Cela a fonctionné pour moi sur OSX Yosemite.
https://github.com/cowboyd/therubyracer/issues/339
la solution de jasonlynes trouvée sur ce lien a fait l'affaire pour moi. tout le reste n'a pas fonctionné.
brew install homebrew/versions/v8-315
brew link --overwrite v8-315 --force
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -v '0.12.2' -- --with-system-v8
Essayez avec ce que j'ai résumé dans cette question: "gem installer therubyracer -v '0.10.2'" sur osx mavericks ne pas installer
Cela a fonctionné pour moi (OS X Mavericks)
Cela a bien fonctionné pour moi:
Essayez d’installer cette gem précompilée:
https://dl.dropboxusercontent.com/u/7919548/gems/libv8/libv8-3.11.8.17-x86_64-darwin-13.gem (sha1: 5ce07aaf4085fff5a5e5fe018f06f2b22021bef3b)
Ou si vous préférez construire le vôtre:
git clone https://github.com/cowboyd/libv8.git
cd libv8
git checkout 3.11
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.11.8.17-x86_64-darwin-13.gem
Source: https://github.com/cowboyd/libv8/issues/107
Merci à Felix Bünemann pour le correctif!
J'ai eu le même problème lors de la mise à niveau d'OSX Mountain Lion vers OSX Mavericks. La réponse acceptée a fonctionné pour libv8, mais pas lorsque je suis allé installer l’installation de la gem thubyracer.
La mise à niveau de Ruby-1.8.7-p354 à Ruby-1.8.7-375 a fait l'affaire pour moi. 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 versions
system
* 1.8.7-p354
2.0.0-rc2
rbenv uninstall 1.8.7-p354
rbenv install 1.8.7-p375
rbenv versions
system
* 1.8.7-p375
2.0.0-rc2
bundle install
J'ai essayé plusieurs solutions décrites dans les réponses précédentes, mais j'ai constaté qu'exécuter bundle (pour installer d'autres gems manquants) tenterait de recompiler libv8 (bien qu'il l'ait déjà installée avec succès en utilisant --with-system-v8
) et souffrait donc de la même problème.
Finalement, j'ai trouvé que la suppression de la gem libv8, l'extraction du fichier gem de rubygems, puis l'installation manuelle du fichier .gem
avec le drapeau --with-system-v8
fonctionnaient pour moi.
c'est à dire.
gem uninstall libv8
gem fetch libv8 -v LIBV8_VERSION
gem install libv8-LIBV_VERSION.gem -- --with-system-v8
bundle
Merci à réponse de Gaurav Agarwal pour m'avoir conduit dans la bonne voie!
J'utilisais une version bêta de Xcode pour un autre projet et j'avais oublié. Revenez en arrière avec xcode-select
. Quelque chose comme:
Sudo xcode-select --switch /Applications/Xcode.app/
Ce qui a vraiment fonctionné pour moi a été de mettre à niveau Ruby vers la version 2.2.0, de supprimer Gemfile.lock et de le regrouper à nouveau.
Travaillé comme un charme!
Vous pouvez essayer de compiler et d’installer la gem manuellement à l’aide de la méthode mentionnée sur le site github de libv8.
J'ai rencontré un problème similaire sur El Cap. Voici ce que j'ai fait.
brew tap homebrew/dupes
brew install Apple-gcc42
Puis,
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
Finalement,
brew uninstall v8
gem install libv8 -v 3.11.8.17 -- --with-system-v8
C'est ce qui a fonctionné pour moi.
remplacez 3.16.14.7
par votre version.
bundle install
gem install libv8 -v '3.16.14.7' -- --with-system-v8
bundle install
gem uninstall libv8 -v '3.16.14.7' -- --with-system-v8
brew install homebrew/dupes/Apple-gcc42
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
bundle install
Sous MAC-Yosemite avec environnement RVM et version Ruby-2.1.1
gem install libv8 -v 3.16.14.3 -- --with-v8-lib gem install therubyracer
Cela fonctionne avec l'aide de la commande ci-dessus, peut confirmer cela.