Как установить Rails

05 February 2012 #mac #soft #rails #ruby #rvm

Для работы с различными версиями 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 и всех версий руби осуществляется в домашнюю папку пользователя. При этом мы получаем возможность использовать различные версии руби в отдельных проектах. И при этом получаем незахламленные наборы пакетов руби, которые можно достаточно быстро переключать между собой и использовать их в случае необходимости.