Как установить Rails
Для работы с различными версиями Ruby необходимо использовать RVM: Ruby Version Manager.
Устанавливаем его:
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
Во время установки в файл .profile прописывается строка для использования данного менеджера версий, но если используется zsh, то необходимо самостоятельно вставить следующую строку себе в файл ~/.zshrc:
[[ -s "/Users/juev/.rvm/scripts/rvm" ]] && source "/Users/juev/.rvm/scripts/rvm"
После перезапуска терминала, можно начинать работать. Для начала установим требуемую версию Ruby:
$ rvm install 1.9.3
Для переключения версий Ruby используется следующий синтаксис:
$ rvm use system # для использования версии, установленной в системе
$ rvm use 1.9.3 # для использования установленной версии
Для того, чтобы указать, что конкретная версия Ruby используется по умолчанию, достаточно указать ключ --default:
$ rvm use system --default
Кстати, можно опускать ключевое слова use и писать просто номер версии, к примеру:
$ rvm 1.9.3
Посмотреть, какие версии доступны в данный момент в системе и какие из них используются по умолчанию, можно с помощью команды:
$ rvm list
rvm rubies
ruby-1.8.7-p352 [ i686 ]
=* ruby-1.8.7-p357 [ i686 ]
ruby-1.9.3-p0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
В показанном выше примере по умолчанию используется версия 1.8.7, что была установлена с помощью rvm и она же в данный момент времени является активной.
Итак, теперь переходим к составлению списка gem, что будут использоваться при работе. RVM позволяет не только управлять версиями Ruby, установленными в системе, но и использовать различные наборы гемов. После установки очередной версии Ruby создается соответствующий пустой набор.
Для того, чтобы импортировать системный набор гемов, достаточно использовать команду:
$ rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system
Или же воспользоваться возможностью переключения наборов:
$ rvm gemdir system
Вместо system можно использовать указание на определенные версии Ruby, что были установлены с помощью RVM. Так же можно создавать свои собственные наборы, используя команду:
$ rvm gemset create myproject
После чего для использования данного набора нужно после версии указывать и имя используемого набора гемов:
$ rvm 1.9.3@myproject
Теперь, когда мы создали набор с именем myproject, наполним его, установив рельсы:
$ gem install rails devise haml rails-haml
Данные пакеты будут установлены только в набор myproject, поэтому при переключении в системную версию руби, если там рельсы не были установлены, то мы теряем возможность с ними работать. Для того, чтоб не запоминать, какую версию Ruby мы использовали в проекте и какое имя мы дали нашему gemset, достаточно в директории проекта создать файл .rvmrc, в которой указываем строку переключения версии:
rvm 1.9.3@myproject
Теперь при переходе в директорию проекта у нас автоматически будет осуществляется переход на требуемую версию руби и выбор нужного набора пакетов. А при выходе из этой директории, будет осуществляться переход на использование версии руби, установленной по умолчанию.
Таким образом мы ничего не меняем в системе, так как вся установка RVM и всех версий руби осуществляется в домашнюю папку пользователя. При этом мы получаем возможность использовать различные версии руби в отдельных проектах. И при этом получаем незахламленные наборы пакетов руби, которые можно достаточно быстро переключать между собой и использовать их в случае необходимости.