Не удается получить доступ к консоли Rails для приложения, развернутого в Passenger с использованием Capistrano & RVM - PullRequest
5 голосов
/ 17 марта 2011

После того, как мне наконец-то удалось запустить мое приложение на Rails, я застрял с немного озадачивающей проблемой. Я развернул свое приложение Rails 3.0.5 на сервере Ubuntu 10.10 с Capistrano, RVM и Nginx. Все работает хорошо, и я могу подтвердить, что Rails работает, поскольку я получаю данные из базы данных и значимые сообщения журнала.

Проблема в том, что на сервере я не могу получить доступ к консоли. Когда я пытаюсь

rails c

Там написано: "Программа" rails "в настоящее время не установлена. Чтобы запустить" rails ", пожалуйста, попросите вашего администратора установить пакет" rails ""

Однако он установлен, иначе мое приложение не будет работать! У меня установлено только два набора гемов RVM, глобальный и один называется rails305. Попытка

rvm gemset use rails305

1011 * тогда *

gem list

не показывает никаких драгоценных камней, которые нужны моему приложению, однако они должны быть установлены, потому что 1) приложение не будет работать без них и 2) в моем сценарии развертывания Capistrano, их устанавливает установщик (в этот набор гемов). Таким образом, проблема, очевидно, связана с RVM, но я не могу понять, что это ... кто-нибудь есть идеи?

Ответы [ 2 ]

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

Похоже, Capistrano использует упаковщик, поэтому вы можете попробовать

bundle exec rails c

из каталога развертывания.

Для получения дополнительной информации см. Страницу развертывания пакета .

0 голосов
/ 25 января 2012

Bundler по умолчанию не устанавливает gems в среду rvm по умолчанию при развертывании через capistrano, вместо этого он устанавливает его в каталог shared / bundle, чтобы попытаться приспособиться к средам производственной установки, которые не используют RVM.Если вы используете RVM в рабочей среде и хотите просто установить упаковщик на свой стандартный ruby ​​/ gemset (что очень полезно, если вы собираетесь войти в рабочую среду, запускать сценарии rake, консоль и т. Д.), Добавьте следующие параметрына ваш config/deploy.rb:

set :bundle_dir, ""
set :bundle_flags, ""

Это удалит флаги "--deployment" (и "--quiet", которые вы можете или не хотите сохранять) и --path, которые вызывают упаковщикчтобы все было хорошо упаковано, так что bundler теперь установится в среду RVM пользователя;заставить вашу серверную среду работать намного больше, как ваша среда разработки (которая может быть хорошей или плохой в зависимости от ваших потребностей).

...