Использование RVM с уже установленным Ruby - PullRequest
1 голос
/ 15 февраля 2011

Я работаю над проектом Rails 3. На сайте клиента сеть очень ограничена. Сетевой домен не разрешит доступ к rubygems, github и т. Д. Я должен установить большинство вещей вручную. Вот так я установил разные версии Ruby. У меня установлен RVM сейчас, но он не может найти установленные рубины. RVM говорит мне установить Ruby, который я пытаюсь установить. Есть ли способ по-прежнему использовать RVM, хотя я не могу использовать установку Ruby по умолчанию как «rvm install ruby-xxx»?

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Можно заставить RVM управлять несколькими версиями Ruby, но вы должны оказать ему некоторую помощь, и он не может сделать это с Ruby, которые он не компилировал и не устанавливал.

Любые Ruby RVM, которые не были установлены, считаются «системными», хотя их может быть несколько. Использование rvm system указывает RVM удалить информацию о пути из передней части переменной среды PATH, позволяя оболочке выполнить обычный поиск, который, как мы надеемся, попадет в двоичный файл ruby. Если у вас есть несколько Ruby вне контроля RVM, вам придется вручную скорректировать свой путь. Это стоимость выполнения за пределами RVM.

Если вы хотите, чтобы RVM устанавливал и управлял Ruby, вы можете вручную скопировать файлы tarball исходного кода распространения Ruby в ~/.rvm/archives. Вот файл, который вам понадобится для текущих 1.8.7 и 1.9.2:

ruby-1.8.7-p330.tar.bz2
ruby-1.9.2-p136.tar.bz2
rubygems-1.3.7.tgz

Как только они будут установлены в эту папку, вы сможете указать RVM rvm install 1.9.2-p136 или rvm install 1.8.7-p330, и он извлечет содержимое в ~/.rvm/src и начнет шаги конфигурирования, компиляции, установки. Если он вообще скулит, он, вероятно, захочет, чтобы вы сначала разархивировали эти файлы в ~/.rvm/src. Затем попробуйте снова установить команды. По сути, на данный момент мы играем с умом RVM, поэтому, если у вас возникнут проблемы, вам, вероятно, следует обратиться за помощью к разработчику. Вы можете получить его электронную почту через rvm -v.

Это то, что я должен сделать с одним из моих хостов, и это работает.

3 голосов
/ 15 февраля 2011

Есть два способа:

  1. отключить rvm:

    • rvm system - отключить rvm ruby ​​
    • rvm alias delete default - отключить ruby ​​по умолчанию

    это должно сработать, но отключит rvm ruby ​​по умолчанию, http://rvm.io/rvm/basics/

  2. смонтировать существующий ruby:

    • rvm mount /path/to/ruby/bin/ruby ИЛИ:
    • rvm automount

    добавит существующие рубины в rvm, https://github.com/wayneeseguin/rvm/blob/master/help/mount

...