среда, 8 февраля 2012 г.

Ruby on Rails и RVM на Mac OS X Lion

Установим Homebrew - менеджер пакетов для OS X
#ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"


С помощью brew можно ставить пакеты так, как это часто делается в Linux. Например, если нужен Git
#brew install git


И MySQL
#brew install mysql


Следуйте инструкциям, которые будут выведены после установки.


Дальше установим RVM - систему управления версиями ruby
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)


Кроме переключения версий ruby, RVM выполняет и другие функции. Например, можно поставить iconv
#rvm pkg install iconv


Теперь нужно бы выполнить rvm install 1.9.3, но команда не сработает. Причина в том, что в OS X Lion стандартный компилятор поменяли с GCC на Clang. Что с этим делать?


1. Можно попробовать скомпилировать ruby с помощью Clang 
#rvm install 1.9.3 --with-gcc=clang Но у меня это тоже не сработало.


2. Или можно указать "правильный" GCC
#export CC=/usr/bin/gcc-4.2; rvm install 1.9.3


Если его нет, то скачать можно тут https://github.com/kennethreitz/osx-gcc-installer/downloads


Даунгрейдить или удалять XCode при этом не нужно.


Переключимся на нужную версию руби
#rvm use 1.9.3


Создадим gemset
#rvm gemset create rails3


Переключимся на нужный gemset
#rvm gemset use rails3



Установим Rails
#gem install rails --pre



Потом
#gem install bundler


И другие нужные гемы, например
#gem install capistrano
#gem install capistrano-ext
#gem install git_remote_branch
#gem install open_gem
#gem install heroku


Ребята из 37signals (создатели RoR) советуют использовать pow - Rack-сервер, не требующий настройки, идеальный менеджер локальных сайтов. Установим его
#gem install powder
#curl get.pow.cx | sh


Готово, запускаем (нужно находиться в директории проекта)
#powder link
#powder open


Pow автоматически создаст виртуальный хост по имени директории и запустит ваше веб-приложение на RoR. 


Еще RVM может перегрузить команду cd для автоматической загрузки нужного окружения, когда вы переходите в директорию проекта. Сделать это можно так

rvm use 1.9.3@rails3 --rvmrc

Все.