Saya mendapatkan kesalahan ini:
rake dibatalkan! Tidak dapat menemukan runtime JavaScript. Lihat https://github.com/sstephenson/execjs ,
Saya sudah menghabiskan lebih banyak waktu mencari google maka saya mau mengakui. Saya percaya ini adalah bug execJs.
Dari semua posting, ini adalah masalah yang sangat umum dengan rail 3.1. Js runtime sekarang dibutuhkan oleh apa yang sekarang menjadi permata standar seperti coffee-script dan sass.
Sebagian besar kasus ini diselesaikan dengan menambahkan permata 'execjs' dan 'therubyracer' ke aplikasi Gemfile, dan kemudian menjalankan 'pembaruan bundel' dan / atau 'bundel instal'. Tapi tidak untukku.
Saya kira saya beruntung. Saya menjalankan rail 3.1.3 / ruby 1.9 pada versi lama Redhat Linux 4 (2.6.9-101.ELsmp) dan gcc adalah 3.4.6.
Perbaikan yang dilaporkan lainnya tidak membantu, saya tidak dapat menginstal 'nodejs', 'johnson', atau 'mustang', yang dijalankan oleh runtime execjs lainnya harus ditemukan dan digunakan. Mereka tidak akan membuat / menginstal di sistem saya.
Saya perlu memperbaiki masalah yang menyebabkan execJs gagal menemukan 'therubyracer'. Ini adalah Gemfile (dan bundel install mengatakan 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
Dan inilah jejaknya:
~/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>'
Tidak ada yang menarik di log pengembangan.
Berikut adalah direktori eksekutif:
/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
Saya juga sudah mencoba execjs-1.2.13. Permasalahan yang sama.
Jika saya berkomentar execjs.rb di bawah ini, saya dapat menjalankan rake tanpa kesalahan:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Tapi kemudian saya tidak mendapatkan runtime.
Saya bisa melihat dari mana teks kesalahan berasal di 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
Jadi pertanyaannya adalah, karena saya sudah menginstal 'therubyracer', mengapa tidak bisa runtimes.rb menemukannya? Apakah eksekutif rusak?
Ini dia 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Bagaimana saya bisa memperbaikinya?