Как обновить свой ruby ​​1.9.2-p0 до последнего уровня патча, используя rvm?

Моя текущая версия ruby ​​- ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0], но я хочу обновить ее до последнего уровня исправления, используя rvm. Как я могу это сделать?

Ответ 1

Прежде всего, обновите свою установку RVM, запустив rvm get stable.

Чтобы убедиться, что вы используете новую версию RVM, вам необходимо запустить rvm reload (или просто открыть новый терминал).

После этого вы можете запросить RVM о списке рубиновых версий, доступных для установки, запустив rvm list known.

На выходе вы должны увидеть:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

Квадратные скобки вокруг уровня патча показывают, что в настоящий момент это уровень исправления RVM по умолчанию для ruby ​​1.9.2.

Наконец, чтобы установить новую рубиновую версию, просто запустите rvm install 1.9.2 - и дождитесь ее компиляции!

Ответ 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

Ответ 3

Первое обновление 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.

Ответ 4

вот так:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136

Ответ 5

Вы можете установить любой уровень патча, следуя странице в wiki.

Кроме того, каждый рубин является независимым, поэтому вы на самом деле не "обновляете и не сохраняете драгоценные камни", а устанавливаете новую версию патча, а затем устанавливаете драгоценные камни в этой новой рубиновой среде.

Возможно, это были гемзеты, но я их не использую.

Не забудьте также обновить свой rvm, на случай, если это будет некоторое время.

Ответ 6

Ответ на

npad определенно определяет основы, поэтому я не буду повторять эти шаги, но есть несколько ответов, в которых предлагается использовать rvm upgrade. Я знаю, что rvm дает вам возможность, но это немного опасно.

IMO, более безопасный и более "способ rvm" - это первая rvm install новая версия ruby, затем используйте команду rvm gemset copy, чтобы скопировать ваши gemset в новую рубиновую версию, например. rvm gemset copy [email protected] [email protected]. Затем вы можете легко переключить свой проект на использование вновь скопированного gemset (я рекомендую использовать файл .rvmrc в каталоге проекта) и посмотреть, не сработает ли ваш код. Если это так, переход к старой рубиновой версии - это просто вопрос переключения gemset.

Но даже если вы не используете gemset (хотя я предполагаю, что вы это сделали, так как вы отметили рельсы по этому вопросу), использование rvm upgrade может привести к неожиданным сбоям. И если ваш код сломается, теперь вам нужно снова установить старую версию. Просто возьмите еще немного времени и сделайте это чистым способом.

Ответ 7

Я думаю, его rvm install 1.9.2-head

Вы можете увидеть доступные рубины с помощью rvm list known

Ответ 8

Это сообщение в блоге должно быть полезным: 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