이 오류가 발생합니다.
갈퀴가 중단되었습니다! JavaScript 런타임을 찾을 수 없습니다. https://github.com/sstephenson/execjs를 참조 하십시오 .
나는 이미 구글 검색에 더 많은 시간을 보냈다. 나는 이것이 execJs 버그라고 생각합니다.
모든 게시물에서 이것은 레일스 3.1에서 매우 일반적인 문제입니다. js 런타임은 이제 커피 스크립트 및 sass와 같은 표준 보석으로 필요합니다.
이러한 경우는 대부분 보석 'execjs'및 'therubyracer'를 앱 Gemfile에 추가 한 다음 '번들 업데이트'및 / 또는 '번들 설치'를 실행하여 해결되었습니다. 그러나 나를 위해 아닙니다.
나는 운이 좋았다고 생각한다. 이전 버전의 Redhat Linux 4 (2.6.9-101.ELsmp)에서 레일 3.1.3 / ruby 1.9를 실행 중이고 gcc는 3.4.6입니다.
보고 된 다른 수정 프로그램이 도움이되지 않습니다 .'nodejs ','johnson '또는'mustang '을 설치할 수 없습니다. 다른 런타임 execJ가 찾아서 사용해야합니다. 그들은 내 시스템에 설치 / 설치하지 않습니다.
execJ가 'therubyracer'를 찾지 못하는 문제를 해결해야합니다. 다음은 Gemfile입니다 (번들 설치에 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
그리고 여기에 흔적이 있습니다.
~/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>'
개발 로그에는 흥미로운 것이 없습니다.
execjs 디렉토리는 다음과 같습니다.
/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
나는 또한 execjs-1.2.13을 시도했다. 같은 문제입니다.
아래의 execjs.rb를 주석 처리하면 오류없이 레이크를 실행할 수 있습니다.
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
그러나 나는 런타임을 얻지 못한다.
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
그래서 문제는 'therubyracer'가 설치되어 있기 때문에 runtimes.rb를 찾을 수없는 이유는 무엇입니까? execJ가 손상 되었습니까?
여기에 'Therubyracer'가 있습니다.
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
이 문제를 어떻게 해결할 수 있습니까?