#ruby-on-rails #ruby #ruby-on-rails-3 #gem #rvm
#ruby-on-rails #ruby #ruby-on-rails-3 #драгоценный камень #rvm
Вопрос:
У меня есть несколько серверов для разработки, промежуточной обработки, тестирования и производства, и я хочу синхронизировать версии Ruby и Gem между разными машинами — каков наилучший способ сделать это?
Комментарии:
1. Если вы используете bundler, вы можете указать версии в Gemfile.
Ответ №1:
Если вы используете Rails 3, вы можете просто использовать Gemfile и bundler, и когда вы выполняете «обновление пакета» на любом компьютере, на котором вы находитесь, он автоматически установит правильные версии Gems для этой учетной записи пользователя.
Вы должны использовать RVM для управления версиями Ruby и хранить драгоценные камни для разных версий Ruby отдельно друг от друга.
Вы также должны создать «набор драгоценных камней» для своего приложения Rails, чтобы убедиться, что установленные там драгоценные камни не были изменены из другого приложения Rails, которое вы можете использовать или разрабатывать на том же компьютере.
Комментарии:
1. Хороший совет. Обратите внимание, что вы можете легко использовать Bundler / Gemfiles, даже если вы не используете Rails 3. Кроме того, я лично рекомендую использовать Bundler
--path
вместо gemsets; в этой статье объясняется больше, но gemsets, безусловно, являются альтернативой..
Ответ №2:
rvm — лучший вариант для управления версиями ruby
Однако я не уверен, действительно ли вы хотите часто менять версию ruby.
bundler amp; Gemfile — отличный способ обработки версий драгоценных камней
Отслеживать ваш Gemfile amp;amp; Gemfile.заблокируйте файлы в дереве git (или другом cvs) и запустите bundle install при изменении
Комментарии:
1. ах! я как раз собирался опубликовать тот же ответ. 1 для rvm есть функция, называемая named gemsets , которая позволяет вам упаковывать свои драгоценные камни.
Ответ №3:
Вы также можете, если у вас в наборе драгоценных камней больше драгоценных камней, чем в вашем Gemfile, выполнить
rvm gemset export gemsetname.gems
А затем на другой машине вы бы выполнили
rvm gemset import gemsetname.gems
Вы даже можете сделать это как
rvm x.x.x@mygemset exec rvm gemset export mygemset.gems
таким образом, вам не нужно переходить непосредственно к вашему набору драгоценных камней. А затем на новой машине,
rvm --create use x.x.x@mygemset amp;amp; rvm gemset import mygemset.gems
который создаст, а затем заполнит ваш набор драгоценных камней mygemset.