Capistrano не может найти среду выполнения JavaScript - PullRequest
0 голосов
/ 30 декабря 2011

У меня проблема с развертыванием Capistrano на сервере с RVM и наборами гемов

executing `deploy:assets:precompile'
* executing "cd /var/app/releases/20111229233555 && rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
*** [err ::] rake aborted!
*** [err ::] Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
*** [deploy:update_code] rolling back
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.2@mygemset' -c 'cd /var/app/releases/20111229234715 && rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'"

Это мой Capfile

  $:.unshift(File.expand_path('./lib', ENV['rvm_path']))
  require 'rvm/capistrano'
  set :rvm_bin_path, "$HOME/.rvm/bin"
  set :rvm_ruby_string, '1.9.2@mygemset'
  set :rvm_type, :user
  load 'deploy/assets'

Когда я вхожу в систему как тот же пользователь, которыйиспользуемая Capistrano, неудачная команда выполняется без проблем.

Кажется, что Capistrano использует какую-то другую среду.

Вот мой ~/.rvmrc файл:

   rvm_gemset_create_on_use_flag=1 rvm_trust_rvmrcs_flag=1

Есть ли способ проверить, какой ruby ​​и gemset используется во время выполнения?

node.jsis и V8 установлены в системе, и все необходимые гемы находятся в Gemfile:

вот мой rvm info:

   ruby:
    interpreter:  "ruby"
    version:      "1.9.2p290"
    date:         "2011-07-09"
    platform:     "x86_64-linux"
    patchlevel:   "2011-07-09 revision 32553"
    full_version: "ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]"

  homes:
    gem:          "/home/capistrano/.rvm/gems/ruby-1.9.2-p290@mygemset"
    ruby:         "/home/capistrano/.rvm/rubies/ruby-1.9.2-p290"

  binaries:
    ruby:         "/home/capistrano/.rvm/rubies/ruby-1.9.2-p290/bin/ruby"
    irb:          "/home/capistrano/.rvm/rubies/ruby-1.9.2-p290/bin/irb"
    gem:          "/home/capistrano/.rvm/rubies/ruby-1.9.2-p290/bin/gem"
    rake:         "/home/capistrano/.rvm/gems/ruby-1.9.2-p290@mygemset/bin/rake"

Ответы [ 2 ]

1 голос
/ 25 октября 2012

Эта проблема исчезла, когда я установил nodejs (используя apt-get) на моем сервере. Как я сказал в этом ответе Stackoverflow , это наиболее практичный выбор, потому что вам не нужно включать какие-либо зависимости в ваш Gemfile.

1 голос
/ 30 декабря 2011

Настройка PATH в deploy.rb решает эту проблему:

default_environment['PATH'] = "/usr/local/bin:/usr/bin:/bin:/opt/bin:$PATH"

это дистрибутив Gentoo, и при использовании cap deploy var PATH кажется пустым, поэтому я скопировал содержимое сервера PATH и теперь он работает

...