Ошибка RVM при развертывании приложения Rails через Capistrano - PullRequest
24 голосов
/ 10 марта 2011

История:

  • Читать в Развертывание приложения Rails3 на Mediatemple DV сервер.
  • Установлен RVM на сервере, ruby ​​и основных гемах.
  • Сайт работает нормально, если я его FTP.
  • Все хорошо.

Затем я решил сделать правильное развертывание и настройку для развертывания GIT / cap согласно «Agile Web Development с Rails».

  • Попытка развертывания с помощью cap, но были ошибки с драгоценными камнями, недоступными для рабочего сайта.
  • Прочитайте и поняли, что мне, вероятно, следует пойти на установку всей системы RVM.
  • Удалены все драгоценные камни и RVM.
  • Установленная система RVM в ширину.
  • Ошибка при развертывании cap "bash: /home/foo/.rvm/bin/rvm-shell: нет такого файла или каталога", что имеет смысл - в домашнем каталоге нет .rvm /.
  • Думая, что что-то зависло от первоначальной установки RVM для использования в качестве пользователя, я удалил пользователя, удалив домашний каталог, и заново создал пользователя с разрешениями.
  • Та же ошибка при развертывании cap "bash: /home/foo/.rvm/bin/rvm-shell: нет такого файла или каталога"

Ситуация сейчас такова:

Для foo .bashrc содержит последнюю строку:

[[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'

Когда я выпускаю:

type rvm | head -1

ответ: «rvm - это функция».

/ etc / rvmrc содержит

if [[ ! -s "$HOME/.rvm/scripts/rvm" ]]; then
  umask g+w
  export rvm_selfcontained=0
  export rvm_prefix="/usr/local/"
fi

У нас заканчиваются идеи, и мы надеемся на некоторые предложения.

Ответы [ 3 ]

76 голосов
/ 16 марта 2011

В следующий раз попробуйте добавить это в вашем capistrano:

set :rvm_type, :system
5 голосов
/ 09 июня 2011

Похоже, что rvm-shell отсутствует в вашем каталоге установки rvm.Запустите эту команду

rvm get head

Тогда вы получите ее прямо в каталоге rvm bin.

0 голосов
/ 16 мая 2012

Я просто хотел добавить комментарий @ imonyse.

Головная ветка rvm может быть слишком нестабильной для некоторых развертываний.Я знаю, что наши устаревшие коробки SLES имеют тенденцию задыхаться от этого.Желательно получить самую последнюю стабильную версию.

rvm get stable

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

...