Ruby Version Manager Використання кількох версій Ruby на одному комп’ютері, Ruby on Rails з нуля!
Ruby Version Manager: Використання кількох версій Ruby на одному комп'ютері.
Ruby дуже швидко розвивається мова програмування, що безсумнівно дуже прекрасно, але є один недолік, при черговому оновленні Ruby до нової версії, ваші старі програми можуть не заробити. Що ж робити? Є два виходи із ситуації, перший – це переписування програми з урахуванням особливостей нової версії інтерпретатора, а потім тестування, виправлення помилок тощо. Зрозуміло, цей спосіб дуже поганий. Другий спосіб вирішення цієї проблеми є досконалим рішенням, він полягає в встановленні кількох версій Ruby на вашу машину.
Для встановлення кількох версій або реалізацій Ruby на один комп'ютер слід використовувати такий чудовий консольний інструмент як(Менеджер версій Ruby), який дозволяє не просто встановити кілька версій інтерпретатора або кілька різних реалізацій, а й створювати скільки завгодно оточень для розробки та перевірки сумісності вашої програми з різними версіями та реалізаціями Ruby, Ruby on Rails або іншими Gem'ами.
Наскільки мені відомо, RVM доступний для користування тільки на *nix-платформах, а це означає, що вам час встановлювати пінгвіна на свій комп'ютер. Не бійтеся нового, я і сам тільки недавно почав використовувати Ubuntu як основну ОС на моєму ноутбуці і всі складнощі, що виникали в процесі освоєння, легко вирішувалися за допомогою google, або друзів, для яких Ubuntu рідна ОС, але зараз не про це.
Перш ніж встановити RVM на ваш комп'ютер, переконайтеся, що у вас встановлені: bash(version>=3.2) awk sed grep which ls cp tar curl gunzip bunzip2 Багато цих тулз вбудовані в bash. Додатково до списку вище вам знадобляться вибір git або subversion. У цій статті ми будемо працювати з git, крім того, git більш зручна та сучасна система керування версіями. Git вам знадобиться для встановлення RVM та його оновлення. Якщо ви бажаєте використовувати RVM у Zsh, переконайтеся, що у вас встановлена версія zsh>=4.3.5, крім усього перерахованого вище.
Отже, давайте для початку встановимо git:
sudo apt-get install git-core
В офіційному посібнику з RVM дається 3 способи встановлення та оновлення RVM. Нам рекомендують встановлювати RVM з Git репозиторію, що ж, послухаємось розумної поради і вб'ємо наступний рядок у консоль:
/.rvm/src && rm -rf ./rvm/ && git clone - depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . «$HOME/.rvm/scripts/rvm»
Тепер закрийте консоль і запустіть заново, це необхідно тому, що поточна консоль не знайома з функцією rvm, а ось знову відкритою rvm буде знайомий тому що ми тільки-но вписали інформацію про нього у файл .bashrc.
Для перевірки коректності установки наберіть у командному рядку:
type rvm head -n1
Якщо у відповідь ви отримаєте:
rvm is a function
отже, все встановлено коректно.
Тепер давайте встановимо кілька версій Ruby. З RVM ми можемо перемикатися між різними реалізаціями, наприклад, між Jruby, MRI, Ruby EE та іншими. Для роботи нам знадобляться останні версії MRI (Matz's Ruby Interpreter) 1.8.7 і 1.9.1, тобто. Стандартні офіційні релізи. Для встановлення скористаємося наступною командою:
rvm install 1.8.7, 1.9.1
Для встановлення інших реалізацій Ruby, можете додати: ree - для Ruby Expert Edition rbx - для rubinius jruby - для Jruby inronruby - для IronRuby macruby - для MacRuby maglev - для MagLev
Доживемо установки та вуалю! На нашій машині встановлено дві версії Ruby. Для перемикання між версіями використовуємо команду:
rvm [версія] , наприклад: rvm 1.9.1 для перемикання на Ruby 1.9.1
Вам також слід вказати, який Ruby повинен використовуватися за умовчанням, для цього скористайтесь командою:
rvm 1.8.7 -default
Тепер, Ruby 1.8.7 буде використовуватися за замовчуванням, а для того, щоб повернутися знову до його використання після роботи з іншою версією, ви можете використовувати команду:
rvm default
У наступній статті ми більш детально розглянемо роботу RVM на прикладі створення іменованих оточень та наборів gem'ів, завдяки чому ви зможете використовувати Rails 3 паралельно з Rails 2.3.х
- DarthSim says:
Додайте тільки команду перед встановленням rvm:
sudo aptitude install curl bison build-essential zlib1g zlib1g-dev libssl-dev libreadline5-dev libreadline6-dev libxml2-dev git-core subversion autoconf
Вона, що встановить все недостатнє для роботи rvm.
:)як зручно. велике дякую
Величезне спасибі! Але не спрацювало, доки не підправив таке:
git clone – depth 1 git://github.com/wayneeseguin/rvm.git перед «depth» замість «−» використовував «—» : git clone —depth 1 git://github.com/ wayneeseguin/rvm.git
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . “$HOME/.rvm/scripts/rvm” термінал лаявся, поки не прибрав лапки: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . $HOME/.rvm/scripts/rvm
тепер усі ОК. Ще раз дякую!
упс. у коментарях символи виглядаютьоднаково: (.
перед “depth” замість “−” використав “–” :
При спробі встановити ruby 1.8.4 iMac-mindoff:
curl: (6) Couldn't resolve host 'ftp.ruby-lang.org' ERROR: There був error, please check /Users/mindoff/.rvm/log/ruby-1.8.4/*.log . Next we'll try to fetch via http. Trying http:// URL instead.
curl: (6) Couldn't resolve host 'ftp.ruby-lang.org' ERROR: There був error, please check /Users/mindoff/.rvm/log/ruby-1.8.4/*.log ERROR: There has been an error while trying to fetch the source. Halting the installation. ERROR: There has been an error fetching the ruby interpreter. Halting the installation.
Як із цим боротися? Прошу тільки не треба говорити, що дуже стара версія і вона мені непотрібна. 1.2
$ rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.6-head [ruby-]1.8.7[-p334] [ruby-]1.8.7-head [ruby-]1.9.1-p378 [ruby-]1.9.1[-p431] [ruby-]1.9.1-head [ruby-]1.9.2[-p180] [ruby-]1.9.2-head ruby-head
# JRuby jruby-1.2.0 jruby-1.3.1 jruby-1.4.0 jruby-1.6.1 jruby[-1.6.2] jruby-head
# Rubinius rbx-1.0.1 rbx-1.1.1 rbx-1.2.3 rbx[-head]
# Ruby Enterprise Edition ree-1.8.6 ree[-1.8.7][-2011.03] ree-1.8.6-head ree-1.8.7-head
# MagLev maglev[-25913] maglev-head
# Mac OS X Snow Leopard Only macruby[-0.10] macruby-nightly macruby-head
# IronRuby - Not implemented yet. ironruby-0.9.3 ironruby-1.0-rc2 ironruby-head
volniy_strelok, можете встановити будь-яку з перерахованих вище версій. 4 - останнє число у версії Ruby це патч, патчі, як правило, містять дуже незначнізміни та різниці між 1.8.4, 1.8.6, 1.8.7 практично немає, принаймні працюючи за книгами ви її не помітите, а працювати з свіжішою версією буде приємніше, бо там менше помилок і вразливостей.