Нужно ли устанавливать пассажира как обычную жемчужину, хотя мое приложение использует упаковщик? - PullRequest
4 голосов
/ 08 марта 2011

Я пытаюсь настроить новый сервер для размещения приложения Rails и хочу, чтобы все компоненты были чистыми, поэтому я решил использовать пакет rvm +. Я впервые настраиваю сервер Rails.

Раньше я использовал пакет с приложением, и я понимаю, как он управляет зависимостями приложения ... но так как я устанавливаю Passenger и, поскольку это зависимость от среды хостинга, мне нужно сделать 'gem install passenger' на сама коробка вместо связывания этой зависимости, верно? Или я должен поместить пассажира в Gemfile приложения?

Ответы [ 2 ]

5 голосов
/ 08 марта 2011

Само приложение будет работать без установленного пассажира (единорог, вебрик, дворняга, худой и т. Д.), Поэтому на самом деле пассажир не должен находиться в Gemfile.Установка пассажира как драгоценного камня отдельно будет правильным выбором в этом случае.

Посмотрите на Gemfile как список драгоценных камней, которые использует ваше приложение.Пассажир использует ваше приложение для предоставления данных пользователю, а не ваше приложение, использующее его.В будущем вы можете рассмотреть возможность использования другого сервера приложений, и вам не нужно менять какую-либо часть вашего приложения, даже Gemfile, чтобы внести это изменение.

Однако, если ваше приложение на самом деле использует специфические для пассажира функции или части драгоценного камня для пассажиров, вам следует включить его.Например, если вы использовали класс, объявленный в passenger, то вы зависите от него и должны включить его в свой Gemfile.

2 голосов
/ 08 марта 2011

Вы должны прочитать руководство RVM по использованию Пассажир с RVM .

Короче говоря, поскольку ваш веб-сервер может использовать только одну версию Ruby и одну версию Passenger за раз, вам нужно только установить Passenger один раз, но это не должно повредить, если оно установлено также для отдельных наборов гемблэшей (и, следовательно, в вашем Gemfile). Рельсы также не должны загружать самого пассажира (т. Е. require 'passenger'), так что это тоже не проблема.

(Лично я предпочитаю использовать bundle install --deployment на сервере и RVM локально).

...