J'ai fait un projet Rails avec,
Rails new test_bootstrap.
réussi.
déplacé dans le répertoire du projet et ajouté les gemmes
gem "therubyracer"
gem "less-Rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "Twitter-bootstrap-Rails"
et courir
bundle install
après cela, j'ai cette erreur.
Installing libv8 (3.16.14.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
c:/RailsInstaller/Ruby1.9.3/bin/Ruby.exe extconf.rb
creating Makefile
지정된 경로를 찾을 수 없습니다. 지정된 경로를 찾을 수
없습니다. 지정된 경로를 찾을 수 없습니다.
c:/RailsInstaller/Ruby1.9.3/lib/Ruby/ge
ms/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 requires
python 2 to be installed in order to build, but it is currently not available (RuntimeErr
or) from c:/RailsInstaller/Ruby1.9.
3/lib/Ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib
v8/builder.rb:42:in `block in build_libv8!'
from c:/RailsInstaller/Ruby1.9.3/lib/Ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `chdir'
from c:/RailsInstaller/Ruby1.9.3/lib/Ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `build_libv8!'
from c:/RailsInstaller/Ruby1.9.3/lib/Ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/location.rb:24:in `install!'
from extconf.rb:7:in `<main>'
Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/Ruby/gems/1.9.1/gems/l
ibv8-3.16.14.3 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/Ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex
t/libv8/gem_make.out
An error occurred while installing libv8 (3.16.14.3), and Bundler cannot
continue.
Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
désolé pour certains Coréens. Il dit, il ne peut pas trouver le chemin choisi ou quelque chose comme ça.
et j'ai essayé d'exécuter cette commande
gem install libv8 -v '3.16.14.3'
jeter la même erreur.
essaye celui-là:
gem install libv8 -v '3.16.14.3' -- --with-system-v8
Note: Comme libv8 est l'interface du moteur V8 utilisé par therubyracer, vous devrez peut-être utiliser libv8, même si la version 8 est déjà installée. Si vous souhaitez utiliser votre propre installation V8, plutôt que de l'avoir construite pour vous, utilisez l'option
--with-system-v8
.
Pour plus d'informations, vous pouvez consulter la documentation de libv8 sur github
J'ai rencontré un problème similaire dans lequel après l'installation de libv8, une erreur survient lors de l'installation de therubyracer. Voici ma solution:
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
$ bundle install
- voir erreur d'installation de therubyracer -
$ gem uninstall libv8
$ brew install v8
$ gem install therubyracer
$ bundle install
- voir l'erreur d'installation de libv8 -
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
Avec homebrew, cela m'aide à résoudre cette erreur.
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'ai essayé la solution listée ci-dessus qui a l'air très bien pour l'installation de gem individuel, mais pour les utilisateurs de bundler - vous devriez utiliser la configuration de bundle
Utilisation
bundle config build.libv8 --with-system-v8
et
bundle config build.therubyracer --with-system-v8
configurer bundler pour prendre les paramètres à utiliser lors de l'installation de gem spécifique
Je ne pense pas que vous ayez besoin de therubyracer
gem sur windows. C'est un runtime javascript utilisant le moteur V8. Par conséquent, il tente d'installer libv8
.
Vous pouvez supprimer en toute sécurité la gemme de votre Gemfile.
Rails est heureux d'utiliser le temps d'exécution qu'il peut trouver. execjs
, nodejs
etc. sont toutes les options possibles.
Microsoft intègre déjà le moteur d’exécution JScript pour JavaScript sur Windows et Rails l’utilise. Voir cela pour plus
Une autre solution pour résoudre le problème consiste à les séparer dans le fichier Gemfile.
group :production do
gem 'libv8', '~> 3.11.8.3'
gem 'therubyracer', :platform => :Ruby
end
Et puis exécutez la commande bundle: bundle install --without production
Mon problème n'était pas lié à therubyracer
du tout juste libv8
gem et comme @ rishav-bhardwaj a souligné --with-system-v8
n'a pas fait l'affaire, mais j'ai dû exécuter
bundle update
puis
bundle install
et enfin
Bundle complete!
L'erreur est partie!
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue.
Make sure that `gem install libv8 -v '3.16.14.7'` succeeds before bundling.
J'ai également été incapable d'installer cette gemme au lieu d'utiliser
--with-system-v8
une fois essayer de faire bundle update qui a bien fonctionné pour moi
je pense que cela a moins à voir avec libv8 qu'avec plutot avec therubyracer.
j'ai reçu votre même erreur lors de l'exécution d'une installation groupée sur une application Rails. Si vous avez rencontré le même problème, essayez d'installer la gemme en dehors du paquet de la manière suivante:
gem install therubyracer
puis lancez bundle install. J'espère que cela fonctionne pour vous aussi.
Essayer avec
gemme "therubyracer", "~> 0.10.2" à Gemfile
Et il installera gem dépendant libv8 (3.3.10.4) et le problème de l’échec de l’extension native du gem de construction sera résolu.
Ça marche pour moi. Mettez ça dans votre Gemfile
gem 'libv8', '~> 3.16.14.7'
Problème libv8 3.16.14.7
résolu à l'aide de la commande ci-dessous:
gem install libv8 -v '3.16.14.7' -- --with-system-v8
Et puis bundle install
terminé avec succès.