Я новый пользователь Capistrano и использую его для развертывания приложения rails 3.1. Кажется, есть проблема с установкой gem на удаленном сервере.
У меня есть следующие вопросы:
Похоже, что установка пакета cap работает на gemfile
? Есть ли какие-то зависимости, чтобы это работало успешно? У меня есть rvm
и bundler
на моем сервере. Нужны ли уже установленные рельсы?
Я вручную установил bundle_cmd
в моем deploy.rb
следующим образом:
set :bundle_cmd, '/usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle'
Должно ли это быть правильно?
Есть ли способ получить подтверждение при развертывании шапки, что ВСЕ необходимые драгоценные камни есть? Или каков наилучший способ отладки неудачной установки пакета на удаленном сервере? Можете ли вы назвать что-то вроде cap gem-list
; надеялся, что что-то вроде cap invoke=gem list
сделает это, но не похоже на это.
Редактировать # 1
Я получаю следующую ошибку:
не удалось: "rvm_path = / usr / local / rvm / usr / local / rvm / bin / rvm-shell" по умолчанию "-c" cd / data / sites / myserver / apps / myapp / Releases / 20111204181321 && установка пакета --gemfile / data / sites / myserver / apps / myapp / Releases / 20111204181321 / Gemfile --path / data / sites / myserver / apps / myapp / shared / bundle --deployment --quiet --without development test '"в 173.230.xxx .xxx
Если я захожу в предыдущий выпуск и запускаю пакетную установку, он говорит, что все установлено правильно, чего не было.
Там написано:
Your bundle is complete! It was installed into /data/sites/myserver/apps/myapp/shared/bundle
но если я зайду туда, то нет ничего, кроме ruby 1.9.1, который, насколько я знаю, я не установил (используя ruby 1.9.2-p290)
Есть ли способ в capistrono указать его, чтобы не удалять развернутый выпуск, чтобы я мог отладить это явно? Мне нужно жестко указать путь к моему пакету в моем скрипте deploy.rb?
спасибо снова
РЕДАКТИРОВАТЬ 2
Если я войду в текущий выпуск по адресу:
/data/sites/myserver/apps/myapp/current
и запустить:
$ which bundle
/usr/local/rvm/gems/ruby-1.9.2-p290/bin//bundle
Я получаю:
$ bundle install
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [minitest-1.6.0,rake-0.8.7, rdoc-2.5.8] (Gem::LoadError)
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle:18:in `<main>'