Как перекомпилировать рубин с помощью RVM? - PullRequest
38 голосов
/ 12 марта 2012

Я установил Ruby 1.9.3 с RVM, и он работает нормально.Затем я внес некоторые изменения в исходный файл ruby ​​C и хочу перекомпилировать и переустановить его, чтобы я мог использовать эти изменения.Однако я не нашел никакой команды rvm Recompile .

Ответы [ 4 ]

54 голосов
/ 14 февраля 2014

Проблема с использованием rvm [reinstall|install] заключается в том, что он будет извлекать и использовать предварительно скомпилированные двоичные файлы, если сможет их найти.Иногда вы действительно хотите восстановить из исходного кода, возможно, потому что вы пытаетесь использовать более свежую версию GCC (например, 4.8 или 4.9).

Правильный флаг --disable-binaryне --force:

rvm reinstall --disable-binary 2.1
28 голосов
/ 12 марта 2012

Ах, хах. rvm uninstall [RUBY], за которым следует rvm install [RUBY], добивается цели.

или лучше:

rvm reinstall [RUBY]
12 голосов
/ 12 марта 2012

или rvm reinstall [RUBY]


8 голосов
/ 12 марта 2012

Использование:

rvm install --force

Он явно просит RVM использовать существующие источники, в более ранних версиях это было по умолчанию - но это может быть очень запутанным.

Итак, другие команды для установки:

rvm try_install <ruby>

Устанавливается только в том случае, если еще не установлена ​​(ваша проблема)

rvm reinstall <ruby>

совпадает с:

rvm remove [--gems] <ruby>
rvm install <ruby>

очевидно, некоторое время сэкономлено с помощью reinstall и используйте [--gems], чтобы также удалить все драгоценные камни, которые были установлены с ruby.

mkdir -p projects/smth && cd projects smth
rvm use 1.9.3@gem --install --create --ruby-version

перейдет в проект, установите 1.9.3 (если еще не установлен), создайте набор гемов исоздайте файл .ruby-version (доступен только в заголовке RVM до версии 1.11.0), остальные флаги:

  • --rvmrc - уже доступны в RVM - создаст .rvmrc файл
  • --versions-conf - доступно только в заголовке RVM до v. 1.11.0 - создаст .versions.conf - файл конфигурации для вашего проекта, вы можете поместить туда любую важную информацию о вашем проекте ... как версию node.js
...