76 votes

Impossible de trouver un runtime JavaScript. Voir https://github.com/sstephenson/execjs pour une liste des environnements d'exécution disponibles. (ExecJS :: RuntimeUnavailable)

Mon site a été en panne depuis Dreamhost mis à jour leurs serveurs il y a quelques semaines. J'ai déchiré mes cheveux en essayant de le rendre fixe et fait quelques progrès, mais je suis coincé sur ce, je l'espère, la dernière question.

Je suis à l'aide de Rails 3.1.1 sur Ruby 1.8.7 et obtenir présentés avec un Rubis (Rack) application n'a pas pu être démarré à l'erreur " de PhusionPassenger. Il affirme qu'il " ne Pourrait pas trouver un runtime JavaScript. Voir https://github.com/sstephenson/execjs pour une liste de temps de fonctionnement. (ExecJS::RuntimeUnavailable)'. La recherche de ce sur Dreamhost wiki a suggéré une solution pour installer 'therubyracer" gem.

J'ai donc mis à jour mon gemfile la proposition de gem comme suit:

gem 'therubyracer', '~> 0.9.9'

EDIT: j'ai aussi essayé d'ajouter dans le fichier:

gem 'therubyracer', :plates-formes => :ruby

mais il n'a pas fait une différence.

Alors faisceau installé sur mon Macbook (exécutant OS X 10.5.8) sans accroc. Toutefois, il échoue lorsque je lance le "plafond de déployer' pour mettre sur Dreamhost; je vois une erreur lorsqu'il tente d'installer libv8 qui therubyracer dépend.

Quelqu'un sait comment obtenir ce pour installer correctement ou de toute autre solution de travail?

Toute autre information peut être fournie sur demande.

Plein retour d'erreur dans le Terminal:

  • l'exécution de la commande "cd /home/futureproof/abunchofletters.co.royaume-uni/releases/20111118003703 && bundle install --gemfile /home/futureproof/abunchofletters.co.royaume-uni/releases/20111118003703/Gemfile --chemin /home/futureproof/.gems/bundle --déploiement --quiet --sans test de développement" serveurs: ["abunchofletters.co.royaume-uni"] [abunchofletters.co.royaume-uni] exécution de la commande * * [:: abunchofletters.co.royaume-uni] Malheureusement, une erreur fatale s'est produite. Merci de signaler cette erreur à l'Bundler problème de tracker https://github.com/carlhuda/bundler/issues de sorte que nous puissions y remédier. Merci! * * [:: abunchofletters.co.royaume-uni] /usr/lib/ruby/1.8/rubygems/installateur.rb:483:en build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] /usr/bin/ruby1.8 extconf.rb ** [out :: abunchofletters.co.uk] *** extconf.rb failed *** ** [out :: abunchofletters.co.uk] Could not create Makefile due to some reason, probably lack of ** [out :: abunchofletters.co.uk] necessary libraries and/or headers. Check the mkmf.log file for more ** [out :: abunchofletters.co.uk] details. You may need configuration options. ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] Provided configuration options: ** [out :: abunchofletters.co.uk] --with-opt-dir ** [out :: abunchofletters.co.uk] --without-opt-dir ** [out :: abunchofletters.co.uk] --with-opt-include ** [out :: abunchofletters.co.uk] --without-opt-include=${opt-dir}/include ** [out :: abunchofletters.co.uk] --with-opt-lib ** [out :: abunchofletters.co.uk] --without-opt-lib=${opt-dir}/lib ** [out :: abunchofletters.co.uk] --with-make-prog ** [out :: abunchofletters.co.uk] --without-make-prog ** [out :: abunchofletters.co.uk] --srcdir=. ** [out :: abunchofletters.co.uk] --curdir ** [out :: abunchofletters.co.uk] --ruby=/usr/bin/ruby1.8 ** [out :: abunchofletters.co.uk] extconf.rb:13: uninitialized constant Gem (NameError) ** [out :: abunchofletters.co.uk] Checking for Python... ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] Gem files will remain installed in /home/futureproof/.gems/bundle/ruby/1.8/gems/libv8-3.3.10.4 for inspection. ** [out :: abunchofletters.co.uk] Results logged to /home/futureproof/.gems/bundle/ruby/1.8/gems/libv8-3.3.10.4/ext/libv8/gem_make.out ** [out :: abunchofletters.co.uk] from /usr/lib/ruby/1.8/rubygems/installer.rb:446:inchaque' * * [:: abunchofletters.co.royaume-uni] à partir de /usr/lib/ruby/1.8/rubygems/installateur.rb:446:en build_extensions' ** [out :: abunchofletters.co.uk] from /usr/lib/ruby/1.8/rubygems/installer.rb:198:ininstaller" * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/source.rb:90: install' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:78:in preserve_paths' * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/source.rb:89: install' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:73:in install_gem_from_spec' * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:93: with_build_args' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:72:in install_gem_from_spec' * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/installateur.rb:56: run' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:55:in run' * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/installateur.rb:12: install' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/cli.rb:219:in installer " * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/vendor/thor/tâche.rb:22: send' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in run' * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/vendor/thor/invocation.rb:118:dans invoke_task' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor.rb:263:in expédition " * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bijoux/bundler-1.1.rc/lib/bundler/vendor/thor/base.rb:386: start' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/bin/bundle:13 ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/bin/bundle:19:in load " * * [:: abunchofletters.co.royaume-uni] à partir de /home/futureproof/.gems/bin/bundle:19 commande terminée dans 13170ms * [déployer:update_code] la restauration * l'exécution de "rm -rf /home/futureproof/abunchofletters.co.royaume-uni/releases/20111118003703; true" serveurs: ["abunchofletters.co.royaume-uni"] [abunchofletters.co.royaume-uni] exécution de la commande commande terminée dans 563ms a échoué: "sh-c 'cd /home/futureproof/abunchofletters.co.royaume-uni/releases/20111118003703 && bundle install --gemfile /home/futureproof/abunchofletters.co.royaume-uni/releases/20111118003703/Gemfile --chemin /home/futureproof/.gems/bundle --déploiement --quiet --sans test de développement'", abunchofletters.co.royaume-uni

151voto

Jim Clouse Points 1688

Si vous êtes sur Ubuntu, installez nodejs

 sudo apt-get install nodejs
 

38voto

Wolfram Arnold Points 3490

libv8 est un OS de la bibliothèque; vous en aurez besoin pour installer le système Linux de la bibliothèque. Si vous êtes sous Ubuntu, c'est

sudo apt-get install libv8-dev

Alternativement, vous pouvez installer node.js qui est disponible en package Debian/Ubuntu pour diverses distributions, par exemple http://ppa.launchpad.net/chris-lea/node.js/ubuntu

Vous pouvez vous épargner beaucoup d'ennuis par le déploiement sur Heroku au lieu où vous n'avez pas à gérer le système d'exploitation ou des composants pour les gemmes.

11voto

J'utilise ces joyaux sur Dreamhost avec Rails 3.1 pour le pipeline d'actifs

 group :assets do
  gem 'execjs'
  gem 'therubyracer', :platforms => :ruby
  gem 'johnson'
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end
 

therubyracer comme précompilateur et johnson comme runtime.

Cela fonctionne pour moi dans les applications 2 Rails 3.1 hébergées par Dreamhost.

6voto

Mateu Points 546

Je suis dans le serveur partagé de dreamhost.

J'ai installé nodejs sans utiliser root / sudo. Sur le serveur:

 #download node js (check last version from web)
$ wget http://nodejs.org/dist/v0.8.16/node-v0.8.16-linux-x86.tar.gz
#untar
$ tar xzf node-v0.8.16-linux-x86.tar.gz
 

Finnaly ajoute son chemin au deploy.rb, en ajoutant la ligne suivante (quelques chemins supplémentaires sont ajoutés dans ce cas):

 default_environment["PATH"] = ":/home/myUser/soft/node-v0.8.16-linux-x86/bin:/home/myUser/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:$PATH"
 

Vous avez terminé

2voto

Michael Durrant Points 30342

J'ai juste vu une présentation sur ce.

J'ai utilisé rubytheracer jusqu'à maintenant. Apparemment, il n'est pas si grande. Et c'est énorme.

Mais vous pouvez utiliser n'importe quel moteur d'exécution javascript.

Les deux autres sont recommandés execjs et node.js (qui est très chaud en ce moment).

Assurez-vous d' gem install la gemme sélectionnée, puis bundle install ou bundle update pour votre application.

Un autre point à souligner est que vous devez passer à 1.9.2 aussi.
Installer RVM (bash < <(curl-s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)) et vous pouvez avoir à la fois 1.8.7 et 1.9.2 side-by-side.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X