Възможно ли е да се използват множество версии на релси с помощта на rbenv (напр. 2.3 и 3.1)? Това беше лесно с gemsets в rvm, но се чудя какъв е най-добрият начин да го направя сега, когато преминах към rbenv (също така търся начин да го направя без rbenv-gemset).
Как използвате множество версии на релси с rbenv?
Отговори (2)
не съм сигурен дали имате отговор на това, но реших да предложа това, което направих, и изглежда, че работи.
Така че след като инсталирате rbenv и го използвате, за да инсталирате конкретна версия на ruby, можете да инсталирате множество версии на rails за този ruby.
СТЪПКА 1. Инсталирайте каквато и да е версия(и) на релси, които желаете за руби версия
% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11
Като използвате префикса "RBENV_VERSION=1.9.2-p290" във вашия команден ред, вие указвате за кой ruby rbenv трябва да се занимава.
След това, следвайки това с командата "rbenv exec", можете да инсталирате релси. Просто използвайте флага за версия, както в примера, за да посочите коя версия искате. Не съм сигурен дали можете да инсталирате няколко версии наведнъж, но аз просто изпълнявам тази команда толкова пъти, колкото е необходимо, за да инсталирам всяка версия, която искам.
Забележка: Всичко това ще се управлява във вашата директория rbenv, така че е напълно безопасно и ограничено.
СТЪПКА 2. Създайте нов rails проект, като посочите желаната от вас версия на rails.
% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project
СТЪПКА 3. Не забравяйте да влезете в този проект и да зададете локалната версия на rbenv ruby.
% cd my_project
% rbenv local 1.9.2-p290
Сега, ако искате да изтриете този проект, просто го изтрийте както обикновено.
Ако искате да изтриете/управлявате версия на rails от rbenv gems, можете да използвате обикновени gem команди, просто добавете префикс към командния ред с:
% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}
И разбира се, можете да изтриете пълна ruby версия и всички нейни подложки и т.н., които се управляват в rbenv доста лесно. Харесва ми колко самостоятелно е всичко.
Надявам се това да помогне.
За справка, това е доста добра разходка през поне някои от тези неща:
http://ascarter.net/2011/09/25/modern-ruby-development.html
Има плъгин rbenv, наречен rbenv-gemset, който трябва да се държи подобно на командата rvm gemset
, но тъй като rbenv никога не е било предназначено да работи по този начин, не съм го пробвал.
Обикновено управлявам версии на Rails с Bundler, както Нейтън предложи в коментарите на един от другите отговори. Създавам Gemfile с желаната от мен версия на Rails, стартирам bundle install
, създавам Rails приложението, оставям го да замени Gemfile и оставям Bundler да поеме:
mkdir my-rails-app
cd my-rails-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '3.2.17'" >> Gemfile
bundle install
bundle exec rails new . --force --skip-bundle
bundle update
Ако искате повече подробности, написах статия в моя блог за това.
Дано помогне!