2013-03-10 3 views
23

Я только что установил Ruby 2.0.0 с помощью rbenv и установил его для глобальной рубиновой версии для моей системы. Поскольку 2.0 совместим с 1.9.3, я попытался запустить с ним проект Rails, но получил следующую ошибку. Я сделал rbenv rehash после установки 2.0переустанавливать каждый камень для каждой рубиновой версии?

The `rails' command exists in these Ruby versions: 
    1.9.3-p327 

Означает ли это, что каждый драгоценный камень я установил в моей системе с 1.9.3 должен быть перезаписаны, если я хочу, чтобы использовать его с 2,0?

+0

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

ответ

17

Да. Rbenv (и RVM) имеют отдельные каталоги «gem home» для каждой установленной версии Ruby. Могут быть способы символизировать определенные каталоги, чтобы они могли делиться ими, но это, вероятно, приведет к проблемам, особенно с драгоценными камнями, которые содержат собственные C-расширения, которые могут или не могут компилироваться и выполняться чисто в нескольких версиях.

Если у вас есть Gemfile, проще всего просто вернуть bundle install для Ruby 2.0, дав вам дубликаты копий многих драгоценных камней и скомпилированных версий Ruby-2.0 любых родных камней.

48

Как видно here:

Вам нужно переустановить Bundler для каждой версии Ruby, который вы используете. Смотрите на Ruby версии, где он установлен:

rbenv whence bundle 

Смотреть текущую версию:

rbenv version 

Установка Bundler для этой версии, если отсутствует:

gem install bundler 
+0

Nice разбивка. –

0

Другим решением этой проблемы является скопируйте (или переустановите) драгоценные камни из вашей предыдущей версии в новую установленную версию. Как это сделать, ответят подробно в this question, который имеет два сценария: один на install from local cache, один на reinstall from the internet (мой).

Смежные вопросы