Ich erhalte diesen Fehler:
Rechen abgebrochen! JavaScript-Laufzeit konnte nicht gefunden werden. Siehe https://github.com/sstephenson/execjs ,
Ich habe bereits mehr Stunden damit verbracht, Google zu durchsuchen, als ich zugeben möchte. Ich glaube, das ist ein ExecJs-Bug.
Von allen Beiträgen ist dies ein sehr häufiges Problem bei Schienen 3.1. Eine js-Laufzeit wird jetzt von Standardedelsteinen wie Kaffeeskript und Sass benötigt.
Die meisten dieser Fälle wurden gelöst, indem die Gems 'execjs' und 'therubyracer' zur App Gemfile hinzugefügt und dann 'Bundle Update' und / oder 'Bundle Install' ausgeführt wurden. Aber nicht für mich.
Ich glaube, ich hatte Glück. Ich verwende Rails 3.1.3 / Ruby 1.9 auf einer alten Version von Redhat Linux 4 (2.6.9-101.ELsmp) und gcc ist 3.4.6.
Andere gemeldete Fixes helfen nicht, ich kann 'nodejs', 'johnson' oder 'mustang' nicht installieren, die anderen Laufzeit-ExecJs sollen sie finden und verwenden. Sie werden nicht auf meinem System erstellt / installiert.
Ich muss das Problem beheben, das dazu führt, dass ExecJs 'therubyracer' nicht finden. Hier ist die Gemfile (und die Bundle-Installation sagt 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
Und hier ist eine Spur:
~/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>'
Das Entwicklungsprotokoll enthält nichts Interessantes.
Hier ist das Ausführungsverzeichnis:
/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
Ich habe auch execjs-1.2.13 ausprobiert. Gleiches Problem.
Wenn ich unten execjs.rb kommentiere, kann ich Rake ohne den Fehler ausführen:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Aber dann bekomme ich keine Laufzeit.
Ich kann in runtimes.rb sehen, woher der Fehlertext kommt:
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
Die Frage ist also, warum ich runtimes.rb nicht finden kann, da ich 'therubyracer' installiert habe. Ist execJs kaputt?
Hier ist es 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Wie kann ich das beheben?