Comments 44
Спасибо, за хороший cheatsheet
0
по поводу джемсетов — желательно использовать bundler.
это безопаснее и удобнее. мы сетапим новый сервак, ставим rvm, нужную версию руби и все. а не ставим все нужные нам джемсеты.
это безопаснее и удобнее. мы сетапим новый сервак, ставим rvm, нужную версию руби и все. а не ставим все нужные нам джемсеты.
+2
Согласен. К раз про это писал недавно habrahabr.ru/blogs/ruby/120272/
0
желательно, простите, для кого? и чем безопаснее, и чем удобнее?
0
для тех кто пишет приложения с использованием Ruby On Rails.
безопаснее тем что у каждого приложения все ему нужные гемы находятся в его папке и подставить модифицированный системный не получится.
удобнее тем что админу всего этого не надо для каждого проекта делать свой жемсет и не ставить все нужные жемы в этот жемсет.
безопаснее тем что у каждого приложения все ему нужные гемы находятся в его папке и подставить модифицированный системный не получится.
удобнее тем что админу всего этого не надо для каждого проекта делать свой жемсет и не ставить все нужные жемы в этот жемсет.
0
При использовании rvm bundler ставить гемы в текущий gemset
0
а зачем?
0
При запуске bundle install под гемсетом 1.9.2@projectname, гемы устанавливаются в директорию /home/user/.rvm/gems/ruby-1.9.2-p180@projectname/gems
Так что никакой директории с гемами под отдельный проект нет. Есть только отдельный gemset
Так что никакой директории с гемами под отдельный проект нет. Есть только отдельный gemset
0
вы капистрано пользуютесь или нет?
0
Ну так в гемсетах и нет «модифицированных системных» никаких, просто гемы лежат не в текущей папке, а в системе (в отдельной папке своего гемсета). Про модификацию гема руками я даже не говорю, этим наверняка уже никто не страдает.
по поводу удобства: у меня в каждом проекте лежит .rvmrc, который автоматически создает гемсет. В глобальном гемсете у меня лежит только бандлер и одной простой командой все эти гемы ставятся в новый гемсет: изоляция идеальная.
Нет, я совсем не говорю, что бандлером пользоваться нельзя или не нужно, просто не нужно так категорично заявлять, что гемсеты использовать ну прямо никак нельзя. Разницы, по большому счету, нет совершенно никакой, все делают так, как конкретно им удобнее.
по поводу удобства: у меня в каждом проекте лежит .rvmrc, который автоматически создает гемсет. В глобальном гемсете у меня лежит только бандлер и одной простой командой все эти гемы ставятся в новый гемсет: изоляция идеальная.
Нет, я совсем не говорю, что бандлером пользоваться нельзя или не нужно, просто не нужно так категорично заявлять, что гемсеты использовать ну прямо никак нельзя. Разницы, по большому счету, нет совершенно никакой, все делают так, как конкретно им удобнее.
0
тоесть вы бандлер у себя вообще не используете? или как?
0
почему же не использую? очень использую!
есть 3 варианта:
— ваш подход (гемы для проекта хранятся внутри проекта, отчего сам проект тяжелеет)
— мой подход (в Gemfile описаны необходимые гемы, при настройке проекта я выполняю bundle install и гемы скачиваются в папку чистого и свежего гемсета)
— устаревший вариант (без rvm: есть некий глобальный гемсет, куда сваливаются все гемы для всех проектов).
я не вижу разницы между первым и вторым вариантом, за исключением того, что я не храню гемы в репозитории с проектом.
есть 3 варианта:
— ваш подход (гемы для проекта хранятся внутри проекта, отчего сам проект тяжелеет)
— мой подход (в Gemfile описаны необходимые гемы, при настройке проекта я выполняю bundle install и гемы скачиваются в папку чистого и свежего гемсета)
— устаревший вариант (без rvm: есть некий глобальный гемсет, куда сваливаются все гемы для всех проектов).
я не вижу разницы между первым и вторым вариантом, за исключением того, что я не храню гемы в репозитории с проектом.
+1
ну по поводу третьего варианта я скажу то что бандлер туда как раз очень хорошо и вписываться.
rvm просто средство управления версиями руби в моём варианте.
а по поводу утяжеления проекта, скажу так что при деплое очень даже ускоряеться скорость bundle install, за счет того что нужные жемы у вас уже в папке. Для меня это важно, потому как у меня ноды поднимаются автоматом если нагругка выросла, и как бы чем быстрее она поднимется, тем лучше.
rvm просто средство управления версиями руби в моём варианте.
а по поводу утяжеления проекта, скажу так что при деплое очень даже ускоряеться скорость bundle install, за счет того что нужные жемы у вас уже в папке. Для меня это важно, потому как у меня ноды поднимаются автоматом если нагругка выросла, и как бы чем быстрее она поднимется, тем лучше.
0
Но зато деплой/пуш занимает больше времени, это тоже не очень круто. Нужно иметь для серверов локальную/распределенную хранилку гемов.
0
> за исключением того, что я не храню гемы в репозитории с проектом.
echo 'vendor/bundle' >> .gitignore
0
Вот всё примерно тоже самое, только на видео с RailsClub
univertv.ru/video/informatika/programmirovanie/konferenciya_railsclubmoscow/rvm_i_nashi_servery/
univertv.ru/video/informatika/programmirovanie/konferenciya_railsclubmoscow/rvm_i_nashi_servery/
+2
В .rvmrc использую комманду с ключом --create. Даже первым делом создаю этот файл echo «rvm 1.9.2@project_name — create >> project_name/.rvmrc И после cd в project_name гемсет сам создается. А уж потом делаю все остальное.
+1
Спасибо за перевод страниц сайтика рвм на русский.
Хотелось бы освещения так же вопросов, которые не обозначенны на сайте, например —
У меня два rails проекта — один на руби 1.8, второй на руби 1.9. Как запустить оба сайта с помощью rvm?
ну и тому подобные…
Хотелось бы освещения так же вопросов, которые не обозначенны на сайте, например —
У меня два rails проекта — один на руби 1.8, второй на руби 1.9. Как запустить оба сайта с помощью rvm?
ну и тому подобные…
0
Устанавливаете две версии руби
rvm install ruby-1.8.7
rvm install ruby-1.9.2
Работаете с одним проектом из под rvm use 1.8.7, с другим rvm use 1.9.2
Чтобы не переключаться вручную можно создать файл .rvmrc в корневой директории каждого проекта.
rvm install ruby-1.8.7
rvm install ruby-1.9.2
Работаете с одним проектом из под rvm use 1.8.7, с другим rvm use 1.9.2
Чтобы не переключаться вручную можно создать файл .rvmrc в корневой директории каждого проекта.
0
напишите ещё, что бы вы хотели узнать, сделаю седьмой пункт «RVM в жизни»
0
как в таком случае настраивать проекты если разные версии Ruby 1.8 и 1.9 под Nginx + Passenger, чтобы последний запускал как надо?
0
blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/
Вкратце, они предлагают на системном руби ставить одни проекты (1.8.7), а потом с помощью RVM в стандалон-режиме запускать другие на той версии рубей, какая нужна для каждого проекта. Ну и на эти пессенджеры, отличные от системного заводить юзеров через РеверсПрокси.
Вкратце, они предлагают на системном руби ставить одни проекты (1.8.7), а потом с помощью RVM в стандалон-режиме запускать другие на той версии рубей, какая нужна для каждого проекта. Ну и на эти пессенджеры, отличные от системного заводить юзеров через РеверсПрокси.
0
Вот как, интересная идея.
А если через Passenger запускать системный Ruby 1.8, а через Unicorn + RVM пускать 1.9 как вариант обойтись без обратного прокси?
А если через Passenger запускать системный Ruby 1.8, а через Unicorn + RVM пускать 1.9 как вариант обойтись без обратного прокси?
0
Эм… чето я немного не понимаю что вы хотите сделать? выставлять наружу Passenger или Unicorn? без apache или nginx перед ними? насчет пассенжера незнаю хорошая ли это идея, и вообще как это сделать, а вот насчет Unicorn'а скажу что это плохая идея. Он не расчитан на медленных клиентов, возьмите Rainbows!
0
Тоже вариант. И не обязательно Unicorn. В этом случае хоть Mongrel, хоть Thin.
0
Sign up to leave a comment.
RVM — подробно