Otrzymuję ten błąd:
prowizja przerwana! Nie można znaleźć środowiska wykonawczego JavaScript. Zobacz https://github.com/sstephenson/execjs ,
Spędziłem już więcej godzin na wyszukiwaniu w Google, niż jestem skłonny przyznać. Uważam, że jest to błąd execJs.
Ze wszystkich postów jest to bardzo częsty problem z szynami 3.1. Środowisko wykonawcze js jest teraz potrzebne przez standardowe klejnoty, takie jak skrypt do kawy i sass.
Większość tych przypadków rozwiązano przez dodanie klejnotów „execjs” i „therubyracer” do aplikacji Gemfile, a następnie uruchomienie „aktualizacji pakietu” i / lub „instalacji pakietu”. Ale nie dla mnie.
Chyba mam szczęście. Używam szyn 3.1.3 / Ruby 1.9 na starej wersji Redhat Linux 4 (2.6.9-101.ELsmp), a gcc to 3.4.6.
Inne zgłoszone poprawki nie pomagają, nie mogę zainstalować „nodejs”, „johnson” lub „mustang”, inne pliki wykonawcze środowiska wykonawczego powinny zlokalizować i użyć. Nie będą tworzyć / instalować w moim systemie.
Muszę rozwiązać problem powodujący, że execJs nie mogą znaleźć „therubyracer”. Oto Gemfile (i instalacja pakietu mówi 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
A oto ślad:
~/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>'
W dzienniku rozwoju nie ma nic interesującego.
Oto katalog 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
Próbowałem także execjs-1.2.13. Taki sam problem.
Jeśli skomentuję poniżej plik execjs.rb, mogę uruchomić prowizję bez błędu:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Ale wtedy nie dostaję środowiska uruchomieniowego.
Widzę, skąd pochodzi tekst błędu w 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
Pytanie brzmi: skoro mam zainstalowany program „therubyracer”, dlaczego runtimes.rb nie może go znaleźć? Czy execJs jest zepsuty?
Oto „termubirator”:
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Jak mogę to naprawić?
sudo apt-get install nodejs
rozwiązałem mój problem.W swoim pliku gem dodaj:
Aby uzyskać więcej informacji: ExecJS i nie można znaleźć środowiska wykonawczego JavaScript
źródło
gem install therubyracer
najpierw.Gemfile
i zadziałało.To jest link, którego potrzebowałem, aby rozwiązać problem (zainstaluj nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
źródło
Kiedy tworzysz pusty projekt, ten wiersz jest komentowany w Gemfile. Po prostu odkomentuj i dołącz!
źródło
Miałem podobne problemy z Ubuntu 12.04. Zainstalowanie Node.js naprawiło to.
źródło
Używam Ubuntu 11.10- 32 bit z Ruby 1.9.3p194, Rails 3.2.3, Gem 1.8.24. Otrzymywał ten sam błąd JavaScript podczas uruchamiania „konsoli skryptów / szyn”.
Jednak wykonanie „sudo apt-get install nodejs” rozwiązało mój problem.
źródło
Użytkownicy Fedory NIE BĘDĄ mogli wykonać prostego „yum install nodejs” z powodu poważnych konfliktów nazw i plików, które uniemożliwiają dostęp do tego pakietu nawet za pośrednictwem repozytoriów Fedory.
Najwyraźniej dostępne jest co najmniej jedno alternatywne repozytorium z alternatywną kompilacją, które może działać, ale to dwie zbyt wiele „alternatywnych”, bym mógł z nich skorzystać - szukam innej alternatywy.
źródło
Spróbuj zainstalować NodeJS i spróbuj ponownie.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
źródło
Jeśli byłeś na Ubuntu
$ sudo apt-get install nodejs
Staraj się nie używać innych systemów, takich jak Windows, do programowania. Pomyśl, że prawie wszystkie serwery na świecie są serwerami Linux, więc kiedy spróbujesz wdrożyć tę aplikację, będzie łatwiej, jeśli opracujesz ją również w środowisku Linux lub Unix.
źródło
Miałem ten sam problem na serwerze pomostowym. Nie miałem problemów z uruchomieniem zadań prowizji na moim lokalnym komputerze programistycznym, ale wdrożenie nie powiodło się na serwerze pomostowym z komunikatem o błędzie „Nie można znaleźć środowiska wykonawczego JavaScript” podczas próby uruchomienia zasobów: prekompilacja zadanie prowizji .
Oczywiście therubyracer i execjs były w moim Gemfile, a ja korzystałem z najnowszych wersji. Moje pliki Gemfile.lock pasują do siebie, a następnie zweryfikowałem wersje, uruchamiając program pakujący .
Po wyszukiwaniu w Google skończyłem z usuwaniem wszystkich klejnotów i ponownym ich instalowaniem co naprawiło problem. Nadal nie wiem, co było przyczyną, ale może to ci pomoże.
Oto jak wygląda moje środowisko, BTW:
źródło
Miałem ten sam problem. Dodanie klejnotów „execjs” i „therubyracer” nie działa dla mnie. apt-get install nodejs - również nie działa. Używam 64-bitowego Ubuntu 10.04.
Ale pomogło mi to: 1. Utworzyłem pusty folder (na przykład „java”). 2. Z terminalu w folderze, który utworzyłem:
Następnie uruchamiam „instalację pakietu” jak zwykle (z folderu z projektem Ruby & Rails). Problem został rozwiązany. Ruby nie musiał ponownie instalować.
źródło
Zdarzyło mi się to na moim komputerze z systemem Windows, okazało się, że problem był zupełnie inny. Przypadkowo usunąłem niektóre ścieżki z mojej
%PATH%
zmiennej. Ponowne uruchomienie wiersza polecenia rozwiązało to. Wygląda na to, że na jednej z brakujących ścieżek było środowisko wykonawcze JS.źródło
Kilka razy wyciągnąłem włosy z tym błędem. Udało mi się sprawić, że kiedyś zniknie, uruchamiając ponownie Apache / Nginx.
Naprawiłem to w ten sam sposób, jak powyżej, dodając następujące elementy do pliku GEM:
a następnie usunąłem mój plik gemfile.lock, a następnie ponownie napisałem „instalacja pakietu”. Dopiero wtedy odkryłem, że „instalacja pakietu” faktycznie zainstalowała prawidłowe biblioteki itp.
źródło
Na Ubuntu musiałem,
sudo apt-get update
a następnie instalacja nodejs działała.źródło
kiedy generuję kontroler g szyn, dostałem ten sam błąd. Potem, kiedy dokonam następujących zmian w Gemfile (w szynach 4) wszystko poszło gładko. Zmiany, które wprowadziłem, były
gem „execjs”
gem ”therubyracer”, „0.11.4”
Następnie mogę uruchomić serwer i wykonać wszystkie podstawowe operacje na aplikacji.
źródło
dodaj swój plik gem, który znajduje się w utworzonym folderze: gem „execjs” gem ”therubyracer”
źródło
W moim przypadku wykonanie
bundle
polecenia załatwiło sprawę . Ufam, że się wtedy odnajdą.źródło
Miałem ten problem podczas korzystania z RubyMine (6.3.3). Pewnego dnia próbowałem uruchomić kod, ale nie zadziałał i narzekałem na brak środowiska wykonawczego JavaScript. Byłem jednak w stanie biec
rails s
. Dla mnie poprawką było utworzenie nowej konfiguracji Run. Wydaje się naprawdę dziwne, że konfiguracja Run zostałaby uszkodzona.źródło