निष्पादनों: 'एक जावास्क्रिप्ट रनटाइम नहीं मिल सका', लेकिन निष्पादित और उपचारात्मक जेमफाइल में हैं


191

मुझे यह त्रुटि मिल रही है:

रेक का गर्भपात! जावास्क्रिप्ट रनटाइम नहीं मिल सका। Https://github.com/sstephenson/execjs देखें ,

मैंने पहले से ही Google को खोजने में अधिक घंटे बिता दिए हैं फिर मैं स्वीकार करने के लिए तैयार हूं। मेरा मानना ​​है कि यह एक निष्पादक बग है।

सभी पोस्ट से, यह 3.1 के साथ एक बहुत ही सामान्य मुद्दा है। एक जे एस रनटाइम की अब कॉफी-स्क्रिप्ट और सैस जैसे मानक रत्न की आवश्यकता है।

इनमें से अधिकांश मामलों को ऐप जेमफाइल के रत्नों के 'एग्जॉस्ट' और 'थेरैबरैसर' को जोड़कर और फिर 'बंडल अपडेट' और / या 'बंडल इनस्टॉल' चलाकर हल किया गया। परंतु मेरे लिए नहीं।

मुझे लगता है कि मैं भाग्यशाली हूं। मैं Redhat Linux 4 (2.6.9-101.ELsmp) के पुराने संस्करण पर 3.1.3 / रूबी 1.9 चला रहा हूँ और gcc 3.4.6 है।

अन्य रिपोर्ट किए गए फ़िक्सेस मदद नहीं करते हैं, मैं 'नोडज', 'जॉनसन', या 'मस्टैंग' स्थापित करने में असमर्थ हूं, अन्य रनटाइम्स एग्जेस्ट्स का पता लगाने और उपयोग करने वाला है। वे मेरे सिस्टम पर नहीं बनाएंगे / स्थापित करेंगे।

मुझे इस समस्या को ठीक करने की जरूरत है, जो 'जेबीआर' का पता लगाने में विफल हो। यहाँ Gemfile है (और बंडल इंस्टॉल ओके कहता है):

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>'

विकास लॉग में कुछ भी दिलचस्प नहीं है।

यहाँ एफ़जेआर 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  

मैंने एग्जाम-1.2.13 भी आजमाया है। एक ही समस्या है।

यदि मैं नीचे निष्पादित करता हूं, तो मैं त्रुटि के बिना रेक चला सकता हूं:

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

तो सवाल यह है कि जब से मेरे पास 'थेरैबरिसर' स्थापित है, तो इसे क्यों नहीं चलाया जा सकता है। क्या निष्पाद टूट गया है?

यहाँ यह 'उपचार' है:

/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9

मैं इसे कैसे ठीक करूं?

जवाबों:


346

Ubuntu उपयोगकर्ता:

मुझे भी यही समस्या थी और मैंने nodejsमणि से स्वतंत्र अपने सिस्टम पर स्थापित करके इसे ठीक किया ।

ubuntu पर इसकी: sudo apt-get install nodejs

मैं 64bit ubuntu 11.10 का उपयोग कर रहा हूं

अद्यतन: नीचे @Galina के उत्तर से मैं अनुमान लगा रहा हूं कि नोडज के नवीनतम संस्करण की आवश्यकता है, इसलिए @ redve (या CentOS) बॉक्स पर आपका सबसे अच्छा विकल्प steve98177 स्रोत कोड से स्थापित करना है जैसा @Galina ने किया था, लेकिन जैसा कि आप इस बॉक्स पर "बना / स्थापित नहीं कर सकता?", मेरा सुझाव है कि आप एक फेडोरा आरपीएम (लंबे शॉट) https://github.com/joyent/node/wiki/Installing-Node.js-via-package- स्थापित करने का प्रयास करें प्रबंधक या एक और आरएच / सेंटो बॉक्स पाते हैं (जिसे आप 'बना सकते हैं') और अपना आरपीएम बना सकते हैं और मूल आरएच बॉक्स पर स्थापित कर सकते हैं (यदि आरएच पर पुराना ग्लिबक अच्छा खेलता है)।

यहां वास्तविक मुद्दा (IMHO) उन रत्नों को स्थापित कर रहा है, जिनके पास माणिक वातावरण के बाहर स्थापित पैकेजों पर निर्भरता है, क्या स्थापित करने से पहले जानने का एक तरीका है? रत्न या बंडल के लिए एक RFI?


CentOS / RedHat उपयोगकर्ता:

sudo yum install nodejs

1
ubuntu पर मुझे उपयुक्त अद्यतन प्राप्त करने के लिए और फिर नोडज स्थापित काम करना पड़ा।
विनीत भाटिया

मैं अपने Ubuntu 12.04- रूबी 1.9.3p392, रेल 3.2.3, मणि 1.8.25 के साथ 32 बिट पर एक ही समस्या थी। "स्क्रिप्ट / रेल कंसोल" और "स्क्रिप्ट / रेल सर्वर" को चलाते समय एक ही त्रुटि प्राप्त हुई थी। sudo apt-get install nodejsमेरी समस्या हल कर दी।
अजिन

हालांकि यह नोड होना चाहिए? मुझे पूरा यकीन है कि आप अन्य लोगों की तरह थेरैबरैस, थेरिबिहिनो या एपल जावास्क्रिप्ट का उपयोग कर सकते हैं। मुझे पता है कि ExecJS उनका समर्थन करता है। github.com/sstephenson/execjs
डस्टिन ग्रिफिथ

रत्न के लिए प्रयास करने के लिए निष्पादित किसी भी वैकल्पिक runtimes द्वारा कार्यान्वित किया गया मुझे निष्पादित कहीं नहीं मिला। वास्तव में, नोडज स्थापित करने ने काम किया। आदर्श से बहुत दूर, लेकिन यह आपको पोस्ट से अतीत में ले जाता है।
मिच कैंट

मैं ubuntu 14.04 का उपयोग करता हूं। नोडज स्थापित करने के बाद समस्या हल हुई।
चार्ल्स वू

108

अपने रत्न जोड़ने में:

gem 'execjs'
gem 'therubyracer', :platforms => :ruby

अधिक जानकारी के लिए: ExecJS और एक जावास्क्रिप्ट रनटाइम नहीं मिल सका


1
धन्यवाद, लेकिन वह काम नहीं करता है। रूबिरहिनो को निष्पादित द्वारा प्राप्त करने के इस प्रयास को देखें: मणि जो राइनो
/usr/local/lib/ruby/gems/1.9.1/gems/therubyrhino-1.73.1/lib-rhino.rb

मेरे लिए भी काम किया, मेरे जैसे रेल शुरुआती के लिए एक नोट: जेमफाइल प्रोजेक्ट फ़ोल्डर में है।
मकास

1
आप में से उन लोगों के लिए जिनके लिए यह काम नहीं किया था: gem install therubyracerपहले चलने का प्रयास करें ।
maksimov

किसी और को यह समस्या होने पर, मैं Shopify के डैशिंग प्रोजेक्ट को एक CentOS 5.8 सिस्टम पर स्थापित कर रहा था और एक्ज़िबिट रनवे समस्या में चल रहा था। मैंने Gemfileइसे अपने साथ जोड़ा और इसने काम किया।
केसी

ठीक है यह काम करता है, ठीक है। लेकिन हमें ऐसा क्यों करना है? जब भी मैं अपने Gemfile में एक पंक्ति जोड़ता हूं, तो उसे वास्तव में व्यक्तिगत प्रोजेक्ट्स के लिए और टीम प्रोजेक्ट्स के लिए समझ में आना चाहिए, ऐसा करने के लिए यह और भी अधिक गन्दा है कि यह समस्या दूसरों की मशीनों पर प्रभाव डालती है जबकि समस्या विशिष्ट थी। IMHO कि लंबे समय में एक बहुत ही सभ्य समाधान नहीं है।
ऑगस्टिन रिडिंगर


13

जब आप एक खाली प्रोजेक्ट बनाते हैं, तो इस लाइन को जेमफाइल में टिप्पणी की जाती है। बस इसे और बंडल!

gem 'therubyracer', :platforms => :ruby

2
... और गठरी! यह, अब तक, सबसे आसान जवाब है।
एटमस 18


4

मैं उबटन ११.१०- ३२ बिट के साथ माणिक १.९.३ पी १ ९ ४, रेल ३.३.३, मणि १..2.२४ का उपयोग कर रहा हूं। "स्क्रिप्ट / रेल कंसोल" चलाते समय एक ही जावास्क्रिप्ट त्रुटि प्राप्त कर रहा था।

हालाँकि "sudo apt-get install नोडज" करने से मेरी समस्या हल हो गई।


4

फेडोरा उपयोगकर्ता गंभीर नामकरण और फ़ाइल प्लेसमेंट टकराव के कारण एक साधारण "यम इंस्टॉल नोडज" नहीं कर पाएंगे जो कि फेडोरा रिपॉजिटरी के माध्यम से इस पैकेज को उपलब्ध होने से रोकते हैं।

जाहिरा तौर पर कम से कम एक वैकल्पिक रिपॉजिटरी उपलब्ध है जो एक वैकल्पिक बिल्ड के साथ उपलब्ध है, जो काम कर सकता है, लेकिन यह दो बहुत सारे "वैकल्पिक" मेरे लिए इसका उपयोग करने के लिए तैयार हैं - मैं एक और विकल्प की तलाश कर रहा हूं।


यह अच्छी तरह से उस समय सच हो सकता है, लेकिन यह अब ठीक काम करता है (दिसंबर 2015)
मिच केंट


4

यदि आप ubuntu पर थे $ sudo apt-get install nodejs

विकास जैसी विंडोज जैसी किसी अन्य प्रणाली का उपयोग न करने का प्रयास करें। यह सोचें कि दुनिया में लगभग सभी सर्वर लिनक्स सर्वर हैं, इसलिए जब आप उस एप्लिकेशन को तैनात करने का प्रयास करते हैं तो यह आसान होगा यदि आपने इसे लिनक्स या यूनिक्स वातावरण पर भी विकसित किया है।


3

मुझे एक स्टेजिंग सर्वर पर यही समस्या थी। मेरे पास अपने स्थानीय विकास मशीन पर रेक कार्यों को चलाने के लिए कोई समस्या नहीं थी, लेकिन परिसंपत्तियों को चलाने की कोशिश करते समय "जावास्क्रिप्ट नहीं मिल सका" त्रुटि संदेश के साथ स्टेजिंग सर्वर पर तैनात करना : precompile rake task।

बेशक, थेरैब्रायसर और एग्जॉस्ट मेरे जेमफाइल में थे, और मैं नवीनतम संस्करणों का उपयोग कर रहा था। मेरी Gemfile.lock फ़ाइलें मेल खाती थीं, और मैंने बंडल शो चलाकर आगे के सत्यापित संस्करणों को देखा ।

Google पर खोज करने के बाद, मैंने अपने सभी रत्नों को हटाना और उन्हें पुनः स्थापित करना समाप्त कर दिया, जिन्होंने समस्या को ठीक कर दिया। मुझे अभी भी नहीं पता है कि मूल कारण क्या था, लेकिन शायद यह आपकी मदद करेगा।

यहाँ मेरा वातावरण कैसा दिखता है, BTW:

Ubuntu 10.04.3 LTS
rbenv
Ruby 1.9.2-p290
bundler-1.0.21
execjs-1.3.0
therubyracer-0.9.9

मुझे ubuntu 10.04 पर यह समस्या आ रही है। नहीं सोचा था कि ubuntu 12.04 के साथ जाना इसके लायक है, लेकिन मुझे लगता है कि यह है! इसलिए, मुझे लगता है कि मेरे मामले में समस्या यह है कि मैंने अपने माणिक (1.9.3, 1.9.2) को कई बार संकलित और पुन: संयोजित किया है। मैं इसे फिर से संकलित कर रहा हूं यह देखने के लिए कि क्या यह ठीक करता है। ओह, और मैं अपनी योग्यता को नवीनतम में बदल रहा हूं।
विक्टर पुडेयव

3

मुझे भी यही समस्या थी। मेरे लिए काम नहीं करने वाले रत्नों को 'एग्जॉस्ट' और 'थेरबायरेसर' से जोड़ना। apt-get स्थापित नोडज - यह भी काम नहीं करता है। मैं 64bit ubuntu 10.04 का उपयोग कर रहा हूं।

लेकिन इससे मुझे निम्नलिखित में मदद मिली: 1. मैंने खाली फ़ोल्डर बनाया (उदाहरण के लिए "जावा")। 2. फ़ोल्डर में टर्मिनल से जो मैंने बनाया है:

$ git clone git://github.com/ry/node.git
$ cd node
$ ./configure
$ make
$ sudo make install

उसके बाद मैं सामान्य रूप से "रूबी और रेल परियोजना के साथ फ़ोल्डर से" बंडल इंस्टॉल "चलाता हूं। और समस्या का समाधान हो गया। रूबी को फिर से स्थापित नहीं करना पड़ा।


अब यह कोशिश करने वाले को कोई त्रुटि मिलेगी। कृपया निम्नलिखित का प्रयास करें git क्लोन क्लोन github.com/nodejs/node
Yeasin Ar Rahman

2

मेरे पास यह मेरी विंडोज मशीन पर हुआ था, पता चला समस्या काफी अलग थी। मैंने अपने %PATH%चर से गलती से कुछ रास्ते हटा दिए थे । बस कमांड प्रॉम्प्ट को पुनरारंभ करने से इसे हल किया गया। ऐसा लगता है जैसे उन लापता रास्तों में से एक में जेएस रनटाइम था।


मैं भी अपनी खिड़कियों की मशीन से कुछ रास्ता निकाल चुका हूँ, क्या आप बताएंगे कि कैसे आपने js रास्ता जोड़ा है
हुसैन अख्तर वाहिद 'घौरी'

@ हुसैनअख्तरवाहिद, मैंने अपने ऑटोसेक्स या इस तरह की किसी भी चीज़ को अधिलेखित नहीं किया था, इसलिए मुझे जो भी करने की ज़रूरत थी वह मेरे cmd सत्र को बंद करने और इसे फिर से खोलने की थी।
गॉडविन

अच्छा किया साहब, यह एक विंडोज़ रूबी विकास पर्यावरण के लिए आवश्यक सब कुछ सेटअप करने की कोशिश करने के बाद मेरा मुद्दा था
HostMyBus

2

मैंने कुछ समय के लिए अपने बालों को इस त्रुटि से बाहर निकाला है। मैं इसे Apache / Nginx को पुनः आरंभ करके कुछ समय में गायब करने में कामयाब रहा हूं।

इसलिए मैंने इसे GEM फ़ाइल में निम्न जोड़कर ऊपर की तरह ही निर्धारित किया है:

gem 'execjs'
gem 'therubyracer', :platforms => :ruby

और फिर मैंने अपनी gemfile.lock फ़ाइल DELETED की और फिर "बंडल इनस्टॉल" रेरन किया। मैंने तभी पाया कि "बंडल इंस्टाल" वास्तव में सही लाइब्रेरियों आदि को स्थापित करता है।


1

उबंटू पर, मुझे काम करना पड़ा sudo apt-get updateऔर फिर नोडज ने काम किया।


1

जब मैं रेल जी नियंत्रक उत्पन्न करता हूं तो मुझे वही त्रुटि मिली। उसके बाद जब जेमफाइल (रेल में 4) पर निम्न परिवर्तन किए गए तो सब कुछ सुचारू हो गया। मेरे द्वारा किए गए परिवर्तन थे

मणि ''
मणि 'थेरैबरिसर' को निष्पादित करता है, "0.11.4"
इसके बाद मैं सर्वर को चलाने में सक्षम हो सकता हूं और एप्लिकेशन पर सभी बुनियादी ऑपरेशन करने में सक्षम हो सकता हूं।


0

आपके द्वारा बनाए गए फ़ोल्डर में अपने रत्न को जोड़ें: मणि 'निष्पादित' मणि 'उपचारात्मक'


0

मेरे मामले में bundleकमान चलाने वाले ने चाल चली। मुझे भरोसा है कि वे एक-दूसरे को ढूंढते हैं।


0

रूबीमाइन (6.3.3) का उपयोग करते समय मुझे यह समस्या थी। एक दिन मैंने अपना कोड चलाने की कोशिश की, लेकिन यह काम नहीं किया और कोई जावास्क्रिप्ट रनटाइम नहीं मिलने की शिकायत की। मैं rails sहालांकि चलाने में सक्षम था । मेरे लिए फिक्स एक नया रन कॉन्फ़िगरेशन बना रहा था। वास्तव में विचित्र लगता है कि रन कॉन्फ़िगरेशन भ्रष्ट हो जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.