Не удалось найти исполняемый файл JavaScript. См. Https://github.com/sstephenson/execjs для списка доступных сред выполнения. (ExecJS:: RuntimeUnavailable)
Мой сайт был поврежден, так как Dreamhost обновил свои серверы пару недель назад. Я разорвал свои волосы, пытаясь исправить ситуацию и сделал некоторый прогресс, но я застрял на том, что, надеюсь, будет последним.
Я использую Rails 3.1.1 на Ruby 1.8.7 и получить приложение "Ruby (Rack) не может быть запущено" от PhusionPassenger. В нем указано, что "Не удалось найти среду выполнения JavaScript. См. https://github.com/sstephenson/execjs для списка доступных сред выполнения. (ExecJS:: RuntimeUnavailable)". Поиск этого на Dreamhost wiki предложил решение для установки драгоценного камня "therubyracer".
Итак, я обновил свой gemfile с помощью предлагаемого драгоценного камня:
gem 'therubyracer', '~ > 0.9.9'
EDIT: я также попытался добавить в файл:
gem 'therubyracer',: platform = > : ruby
но это не повлияло.
Затем пакет, установленный на моем Macbook (работающий с ОС X 10.5.8) без сбоев. Однако это не удается, когда я запускаю "cap deploy" для установки Dreamhost; Я вижу ошибку, когда он пытается установить libv8, от которого зависит процессор.
Кто-нибудь знает, как правильно установить это или любое другое рабочее решение?
Любая другая информация может быть предоставлена по запросу.
Полная обратная связь с ошибкой от терминала:
- выполнение "cd/home/futureproof/abunchofletters.co.uk/releases/20111118003703 && & & установить пакет --gemfile /home/futureproof/abunchofletters.co.uk/releases/20111118003703/Gemfile --path/home/futureproof/.gems/bundle --deployment --quiet - без теста разработки" серверов: [ "abunchofletters.co.uk" ] [abunchofletters.co.uk] команда выполнения ** [out:: abunchofletters.co.uk] К сожалению, произошла фатальная ошибка. Сообщите об этой ошибке трекеру Bundler по адресу https://github.com/carlhuda/bundler/issues, чтобы мы могли это исправить. Благодарю! ** [out:: abunchofletters.co.uk] /usr/lib/ruby/ 1.8/rubygems/installer.rb:483:in
build_extensions':
ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError) ** [out ::
abunchofletters.co.uk] ** [out :: abunchofletters.co.uk]
/usr/bin/ruby1.8 extconf.rb ** [out :: abunchofletters.co.uk] ***
extconf.rb failed *** ** [out :: abunchofletters.co.uk] Could not
create Makefile due to some reason, probably lack of ** [out ::
abunchofletters.co.uk] necessary libraries and/or headers. Check the
mkmf.log file for more ** [out :: abunchofletters.co.uk] details.
You may need configuration options. ** [out :: abunchofletters.co.uk]
** [out :: abunchofletters.co.uk] Provided configuration options: ** [out :: abunchofletters.co.uk] --with-opt-dir ** [out ::
abunchofletters.co.uk] --without-opt-dir ** [out ::
abunchofletters.co.uk] --with-opt-include ** [out ::
abunchofletters.co.uk] --without-opt-include=${opt-dir}/include **
[out :: abunchofletters.co.uk] --with-opt-lib ** [out ::
abunchofletters.co.uk] --without-opt-lib=${opt-dir}/lib ** [out ::
abunchofletters.co.uk] --with-make-prog ** [out ::
abunchofletters.co.uk] --without-make-prog ** [out ::
abunchofletters.co.uk] --srcdir=. ** [out :: abunchofletters.co.uk]
--curdir ** [out :: abunchofletters.co.uk] --ruby=/usr/bin/ruby1.8 ** [out :: abunchofletters.co.uk] extconf.rb:13: uninitialized constant Gem (NameError) ** [out :: abunchofletters.co.uk] Checking
for Python... ** [out :: abunchofletters.co.uk] ** [out ::
abunchofletters.co.uk] Gem files will remain installed in
/home/futureproof/.gems/bundle/ruby/1.8/gems/libv8-3.3.10.4 for
inspection. ** [out :: abunchofletters.co.uk] Results logged to
/home/futureproof/.gems/bundle/ruby/1.8/gems/libv8-3.3.10.4/ext/libv8/gem_make.out
** [out :: abunchofletters.co.uk] from /usr/lib/ruby/1.8/rubygems/installer.rb:446:in
each '** [out:: abunchofletters.co.uk] из /usr/lib/ruby/ 1.8/rubygems/installer.rb:446:in build_extensions' **
[out :: abunchofletters.co.uk] from
/usr/lib/ruby/1.8/rubygems/installer.rb:198:in
установить '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/source.rb:90:in install' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:78:in
preserve_paths '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/source.rb:89:in install' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:73:in
install_gem_from_spec '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:93:in with_build_args' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:72:in
install_gem_from_spec '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:56:in run' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:55:in
запустить '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:12:in install' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/cli.rb:219:in
установить '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in send' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in
запустить '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/invocation.rb:118:in invoke_task' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor.rb:263:in
Отправка '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/base.rb:386:in start' ** [out :: abunchofletters.co.uk] from
/home/futureproof/.gems/gems/bundler-1.1.rc/bin/bundle:13 ** [out ::
abunchofletters.co.uk] from /home/futureproof/.gems/bin/bundle:19:in
load '** [out:: abunchofletters.co.uk] из /home/futureproof/.gems/bin/bundle:19 команда завершена в 13170мс *** [deploy: update_code] откат назад * выполнение "rm -rf/home/futureproof/abunchofletters.co.uk/releases/20111118003703; true" серверов: [ "abunchofletters.co.uk" ] [abunchofletters.co.uk] команда выполнения команда завершилась с ошибкой 563мс: "sh -c" cd/home/futureproof/abunchofletters.co.uk/releases/20111118003703 && & & установить пакет --gemfile /home/futureproof/abunchofletters.co.uk/releases/20111118003703/Gemfile --path/home/futureproof/.gems/bundle --deployment --quiet - без теста развития "на abunchofletters.co.uk
Ответы
Ответ 1
libv8
- это библиотека ОС; вам нужно будет установить правильную системную библиотеку Linux. Если вы используете Ubuntu, он
sudo apt-get install libv8-dev
В качестве альтернативы вы можете установить node.js
, который доступен как пакет Debian/Ubuntu для различных дистрибутивов, например. http://ppa.launchpad.net/chris-lea/node.js/ubuntu
Вы можете сэкономить массу проблем, развернув на Heroku вместо этого, где вам не нужно управлять ОС или компонентами для драгоценных камней.
Ответ 2
Если вы используете Ubuntu, установите nodejs
sudo apt-get install nodejs
Ответ 3
Я использую эти драгоценные камни в Dreamhost с Rails 3.1 для Asset Pipeline
group :assets do
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
gem 'johnson'
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
therubyracer в качестве прекомпилятора, а johnson - как время выполнения.
Эта работа для меня в 2 приложениях Rails 3.1, размещенных Dreamhost.
Ответ 4
Я нахожусь в общедоступном сервере dreamhost.
Я установил nodejs без использования root/sudo. На сервере:
#download node js (check last version from web)
$ wget http://nodejs.org/dist/v0.8.16/node-v0.8.16-linux-x86.tar.gz
#untar
$ tar xzf node-v0.8.16-linux-x86.tar.gz
Finnaly добавляет свой путь к deploy.rb, добавляя следующую строку (в этом случае добавляются еще несколько путей):
default_environment["PATH"] = ":/home/myUser/soft/node-v0.8.16-linux-x86/bin:/home/myUser/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:$PATH"
Вы закончили
Ответ 5
Я просто видел презентацию об этом.
Я использовал rubytheracer до сих пор. По-видимому, это не так здорово. И это огромное.
Но вы можете использовать любое время выполнения javascript.
Другие рекомендуемые execjs и node. js (сейчас очень жарко).
Убедитесь, что gem install
выбранный камень, а затем bundle install
или bundle update
для вашего приложения.
Еще одно замечание - вы также должны перейти на 1.9.2.
Установите RVM (bash < (curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer))
и вы можете иметь как 1.8.7, так и 1.9.2 бок о бок.
Ответ 6
Я только что ударил по той же самой проблеме на моей машине Win7 dev. Похоже на установку https://github.com/hiranpeiris/therubyracer_for_windows и добавление gem 'therubyracer'
в Gemfile
сортирует вещи.
До:
$ rails generate
c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
(...)
В основном это означает, что Rails нуждается в rubyracer
и libv8
.
После:
$ rails generate
SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
This poses a security threat. It is strongly recommended that you
provide a secret to prevent exploits that may be possible from crafted
cookies. This will not be supported in future versions of Rack, and
future versions will even invalidate your existing user cookies.
Called from: c:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.
Usage: rails generate GENERATOR [args] [options]
(...)
Ответ 7
Я бы предложил установить Nodejs. Это сработало для меня.
Просто зайдите на ваш терминал и введите:
sudo apt-get install node.js
Введите свой пароль... И нажмите "Y" всякий раз, когда он запрашивает подтверждение. Надеюсь, это поможет!!!
Ответ 8
Добавьте следующий gem в Gemfile и попробуйте установить пакет
gem "therubyracer", "~ > 0.10.2"