J'obtiens cette erreur, comme beaucoup d'autres:
râteau abandonnée! Impossible de trouver un moteur d'exécution JavaScript. Voir https://github.com/sstephenson/execjs,
et ont déjà passé plus d'heures à chercher sur google, puis je l'admets. Je crois que c'est un execJs bug, mais que sais-je? À partir de tous les postes, c'est un problème très commun avec les rails 3.1. Un js runtime est maintenant nécessaire par ce qui sont maintenant la norme pierres précieuses comme le café-script et sass.
La plupart de ces cas ont été résolus en ajoutant les joyaux execjs " et "therubyracer" pour l'application Gemfile, puis en exécutant la liasse "mise à jour" et/ou "bundle install'. Mais pas pour moi.
Je suppose que j'ai eu de la chance. Je suis en cours d'exécution rails 3.1.3/ruby 1.9 sur une ancienne version de Redhat Linux (Ver 4 (2.6.9-101.ELsmp)). La gcc est 3.4.6.
D'autres ont signalé des correctifs de ne pas aider: je n'arrive pas à installer "nodejs", de "johnson", ou "mustang", les autres runtimes execJs est censé repérer et à utiliser. Ils ne vont pas le faire/l'installer sur mon système.
J'ai donc besoin de résoudre le problème à l'origine execJs de ne pas trouver de "therubyracer'. Quelqu'un a été dans cette voie? Voici le Gemfile (et bundle install dit Ok):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
Et voici une trace:
~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:19:in `load'
/usr/local/bin/rake:19:in `<main>'
Il n'y a rien d'intéressant dans le développement du journal.
Voici la execjs dir:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls
disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb
external_runtime.rb mustang_runtime.rb runtimes.rb
johnson_runtime.rb ruby_racer_runtime.rb
J'ai aussi essayé de execjs-1.2.13. Même problème, je crois.
Si j'ai fait un commentaire execjs.rb ci-dessous, je peux courir râteau sans le message d'erreur:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Mais ensuite, je n'ai pas un moment de l'exécution, puis-je? Est execJs à l'exécution elle-même? Pas de.
Je peux voir où le texte de l'erreur provient de runtimes.rb:
def self.autodetect
from_environment || best_available ||
raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
"See https://github.com/sstephenson/execjs for a list of available runtimes.")
end
La question est donc, depuis que j'ai 'therubyracer' installé, pourquoi ne peut-runtimes.rb trouver? Est execJs cassé?
Ici, il 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Quelqu'un d'autre a eu ce problème avec execJs?
Merci, votre aide serait plus utile!