Я отправил еще пару вопросов во время этого процесса, но у меня есть лучшее представление о том, что я пытаюсь сделать, поэтому я решил спросить об этом.
Я унаследовал приложение Rails 2.2.2, которое в настоящее время работает в производственной форме на сервере, к которому у меня есть доступ. Я пытаюсь перенести это приложение на мой сервер, систему контроля версий и т. Д. Сначала я попытался скопировать исходный код и запустить его под Rails 3 и последними версиями гемов, но это оказалось намного сложнее, чем Я думал, что это будет. Похоже, что лучшее решение - просто использовать ту же версию Rails и другие гемы, которые использует текущая система, и портировать поверх приложения как есть.
Так что мне интересно, как это лучше всего сделать? Я могу поместить источник в мою систему контроля версий и настроить Capistrano и Passenger таким же образом, как они сейчас. Проблема в том, чтобы получить все драгоценные камни в одной и той же версии. Я слышал о замораживании Rails и замораживании драгоценных камней, но многие учебники по нему выглядят немного устаревшими. Безопасно ли замораживать драгоценные камни на работающем в данный момент производственном сервере, или я должен просто получить список драгоценных камней и их версий и вручную установить их на новом сервере, на который я портирую?
Редактировать : Я последовал предложению Тадмана и настроил Gemfile со всеми гемами и последними версиями, установленными на рабочем сервере, но теперь я попал в путаницу с версиями, например: 1009 *
Bundler could not find compatible versions for gem "ruby2ruby":
In Gemfile:
merb-action-args (= 1.0.8.1) depends on
ruby2ruby (>= 1.1.9)
ambition (= 0.5.4) depends on
ruby2ruby (1.1.8)
На рабочем сервере иногда установлено до 4 версий одного и того же гема, но, похоже, Bundler хочет обрабатывать только одну версию каждой. Есть ли простой способ разрешить подобную ситуацию, или это возвращение к изучению заморозки драгоценных камней в производстве?
Редактировать 2: Я закончил удаление версий из всех драгоценных камней, кроме рельсов, и сделал bundle install
. Пока, похоже, он работает, хотя не все версии точно совпадают.