Подтвердить что ты не робот

Не удалось найти исполняемый файл 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
4b9b3361

Ответ 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"