Відповіді:
Перш за все, оновіть установку RVM, запустивши rvm get stable
.
Щоб переконатися, що ви працюєте з новою версією RVM, вам потрібно буде запустити rvm reload
(або просто відкрити новий термінал).
Після цього ви можете попросити RVM перерахувати доступні для встановлення рубінові версії rvm list known
.
На виході ви повинні побачити:
# MRI Rubies
...
[ruby-]1.9.2[-p320]
...
Квадратні дужки навколо рівня патчу вказують, що це в даний час рівень патчу RVM за замовчуванням для рубіна 1.9.2.
Нарешті, щоб встановити нову версію рубіну, просто запустіть rvm install 1.9.2
- і дочекайтеся її складання!
Оновіть рубіновий перекладач і збережіть наявні гемсети:
$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y
Замінити на останню стабільну версію 1.9.2. Це дозволяє уникнути захаращення.
Деякі додаткові корисні поради, завдяки коментарям (@Mauro, @James, @ACB)
$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
rvm list known
, щоб побачити доступні рубінові версії, до яких можна оновити.
Перше оновлення RVM:
rvm get stable
Потім оновіть свою версію Ruby:
rvm upgrade 2.0.0
Виберіть так для всіх питань:
Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y
Якщо ви хочете оновити дорогоцінні камені до останніх версій, ви можете зробити:
rvm all do gem update
EDIT: Я щойно зробив це для останньої версії ruby 2.0.0 (я оновив з ruby-2.0.0-p195 до ruby-2.0.0-p353). Після цього я отримав помилку в сегментації, коли намагався оновити дорогоцінні камені. Це відбувається тому, що дорогоцінні камені були встановлені для ruby-2.0.0-p195, а деякі з них несумісні з p353.
Тепер ви можете піти і спробувати знайти дорогоцінні камені, несумісні, але найпростішим рішенням було видалити всі встановлені дорогоцінні камені та встановити їх заново. Я просто видалив gems/ruby-2.0.0-p353
каталог, який знаходився в /usr/local/rvm
. Це може бути десь ще для вас.
Потім я побіг gem install bundler
і для кожного з моїх рейок я зробив bundle install
.
подобається це:
rvm update; rvm reload
rvm install ruby-1.9.2-p136
rvm --default ruby-1.9.2-p136
Ви можете встановити будь-який рівень патчу, дотримуючись сторінки у їхній вікі .
Крім того, кожен рубін є незалежним, тому ви насправді не "оновлюєте та зберігаєте дорогоцінні камені", але встановлюєте нову версію патча та встановлюєте дорогоцінні камені в новому середовищі рубіну.
Це може бути, якщо гемсети вступають у гру, проте я їх не використовую.
Не забудьте також оновити rvm, про всяк випадок, якщо він пройшов деякий час.
Відповідь npad безумовно викладає основи, тому я не повторюю ці кроки, але тут є кілька відповідей, які пропонують використовувати rvm upgrade
. Я знаю, що rvm дає вам можливість, але це трохи небезпечно.
IMO, більш безпечний і "rvm шлях" - це спочатку rvm install
нову версію рубіну, потім скористайтеся rvm gemset copy
командою, щоб скопіювати ваш набір (и) дорогоцінних каменів у нову версію ruby, наприклад rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset
. Тоді ви можете легко переключити свій проект на використання нещодавно скопійованого набору (я рекомендую використовувати .rvmrc
файл у каталозі вашого проекту) і побачити, чи не виходить ваш код. Якщо це станеться, повернення до старої рубінової версії - це лише питання переключення набору.
Але навіть якщо ви не використовуєте gemsets (хоча я вважаю, що ви це робите, оскільки ви помітили рейки в цьому питанні), використання rvm upgrade
може призвести до несподіваних збоїв. І якщо ваш код зламається, тепер вам доведеться знову встановити стару версію. Просто займіть трохи більше часу і зробіть це чисто.
Ця публікація в блозі має бути корисною: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development
необхідний:
rvm get head
rvm reload
wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
rvm get latest
/rvm get head
- це правильні способи оновлення rvm зараз.