Какой смысл устанавливать ту же версию Ruby через RVM, что и в системе Ruby? - PullRequest
0 голосов
/ 11 января 2012

Я использовал системный ruby ​​версии 1.8.7 по умолчанию без RVM для нескольких проектов rails и не столкнулся с какими-либо проблемами. Я недавно установил RVM, и после запуска rvm requirements я получаю такой вывод:

To use an RVM installed Ruby as default, instead of the system ruby:

    rvm install 1.8.7 # installs patch 357: closest supported version
    rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system.gems # migrate your gems
    rvm alias create default 1.8.7

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

Мои вопросы: я прав в том, что делают эти команды? и если я прав, почему это важно сделать, потому что, если бы я хотел использовать установленный RVM Ruby другой версии, такой как 1.9.2, разве он не отделил бы гемы в этой версии от системного рубина?

Ответы [ 3 ]

3 голосов
/ 11 января 2012

Единственное, что приходит на ум, это то, что если вы используете систему Ruby, вы будете использовать ее немного иначе, чем Ruby RVM - например, вам, вероятно, потребуется использовать sudo для установки гемов. Кроме того, вы не сможете использовать многие функции RVM, например, наборы гемблотов, с системой Ruby.

1 голос
/ 11 января 2012

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

0 голосов
/ 11 января 2012

Мои вопросы, я прав в том, что делают эти команды?

Вы правы в том, что они делают. Первая команда устанавливает Ruby 1.8.7, вторая устанавливает все гемы, которые в настоящее время устанавливаются в вашей системе, установка Ruby в новой установке RVM Ruby 1.8.7, а третья команда устанавливает версию Ruby по умолчанию для RVM Ruby 1.8. 7.

и если я прав, почему это важно сделать, потому что, если бы я хотел использовать установленный RVM Ruby другой версии, например 1.9.2, разве он не отделил бы гемы в этой версии от системного рубина?

Вторая команда на самом деле больше касается удобства, чем необходимости. Да, гемы, установленные в RVM 1.8.7, будут полностью отделены от тех, которые установлены в системной версии Ruby; однако, если бы вы не выполнили вторую команду, ваш RVM 1.8.7 начал бы почти без драгоценных камней (только по умолчанию). Это означает, что вам нужно будет пройти и вручную установить гемы, необходимые для запуска и запуска вашего проекта. Вместо этого вторая команда позволяет вам просто установить те же гемы, которые вы уже установили в системной версии Ruby, на версию RVM 1.8.7 - она ​​не переносит их, а просто делает их копию. После второй команды есть два разных набора одинаковых драгоценных камней: один в системе Ruby и один в RVM 1.8.7 Ruby. Таким образом, если вы обновите драгоценные камни в одном из Рубинов, они будут обновлены, но драгоценные камни другой версии не будут затронуты.

Надеюсь, это поможет ответить на ваш вопрос.

...