이 오류가 발생합니다.
갈퀴가 중단되었습니다! 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
이 문제를 어떻게 해결할 수 있습니까?
답변
우분투 사용자 :
나는 같은 문제가 있었고 nodejs
gem과는 독립적으로 시스템 에 설치 하여 문제를 해결했습니다 .
우분투에서 : sudo apt-get install nodejs
64 비트 우분투 11.10을 사용하고 있습니다.
업데이트 : 아래 @Galina의 답변에서 최신 버전의 nodejs가 필요하다고 생각합니다. @ steve98177 redhat (또는 CentOS) 상자에서 가장 좋은 옵션은 @Galina처럼 소스 코드에서 설치하는 것입니다. 이 상자에 “make / install”을 할 수 없습니까? fedora rpm (long shot)을 설치해보십시오. https://github.com/joyent/node/wiki/Installing-Node.js-via-package- 관리자
또는 다른 RH / CentOs 상자를 찾고 ( ‘만들 수있는’) 자신의 rpm을 생성하고 원래 RH 상자에 설치하십시오 (RH의 오래된 glibc가 잘 작동하는 경우).
실제 문제 (IMHO)는 루비 환경 외부에 설치된 패키지에 의존하는 보석을 설치하는 것입니다. 설치하기 전에 알 수있는 방법이 있습니까? 보석 또는 번 들러 용 RFI?
CentOS / RedHat 사용자 :
sudo yum install nodejs
답변
gemfile에서 다음을 추가하십시오.
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
자세한 내용 :
ExecJS이며 JavaScript 런타임을 찾을 수 없습니다
답변
이것은 문제를 해결하는 데 필요한 링크입니다 (install nodejs) : https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
답변
빈 프로젝트를 만들면이 줄은 Gemfile에서 주석 처리됩니다. 주석 처리를 제거하고 번들하십시오!
gem 'therubyracer', :platforms => :ruby
답변
우분투 12.04에서 비슷한 문제가있었습니다. Node.js를 설치 하면 문제가 해결되었습니다.
답변
루비 1.9.3p194, 레일 3.2.3, 보석 1.8.24와 함께 우분투 11.10-32 비트를 사용하고 있습니다. “script / rails console”을 실행하는 동안 동일한 Javascript 오류가 발생했습니다.
그러나 “sudo apt-get install nodejs”를 수행하면 문제가 해결되었습니다.
답변
Fedora 사용자는 심각한 이름 지정 및 파일 배치 충돌로 인해이 패키지를 Fedora 리포지토리를 통해 사용할 수 없게되므로 간단한 “yum install nodejs”를 수행 할 수 없습니다.
대체 빌드와 함께 사용할 수있는 대체 저장소가 하나 이상있는 것 같지만 사용하기에는 너무 많은 “대체”가 있습니다. 다른 대안을 찾고 있습니다.
