воскресенье, 15 июня 2014 г.

Установка Ruby on Rails 4 на Ubuntu 14.04 Trusty Tahr

В этой статье посмотрим, как установить и настроить Ruby on Rails 4.1.1 на Ubuntu 14.04 Trusty Tahr.
Ubuntu - один из самых легких и хорошо документированный дистрибутив, идеально подходит для разработки web приложений.
Скачать Ubuntu Desktop можно здесь: http://releases.ubuntu.com/14.04/
Я предпочитаю использовать для разработки Ubuntu Server, потому что на продакшен сервере будет установлен именно он.


На момент написания статьи рекомендуемая версия Ruby: 2.1.2
Для начала необходимо обновить пакеты Ubuntu и установить необходимые пакеты для Ruby:
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties
Есть несколько способов установки Ruby, я предпочитаю использовать rvm
RVM позволяет иметь в системе несколько версий ruby и удобно управлять наборами гемов под эти версии.
Установкаrvm довольно проста:
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
rvm install 2.1.2
rvm use 2.1.2 --default
ruby -v
Укажем Rubygems не устанавливать документацию каждого пакета локально:
echo "gem: --no-ri --no-rdoc" > ~/.gemrc

В качестве системы управления версиями я предпочитаю использовать Git, настроенный на мой аккаунт в GitHub. Если не имеете аккаунта в GituHub, зарегистрируйтесь - это пригодится вам в будущем.
Вставьте Ваше имя и электронный адрес от Github аккаунта.
git config --global color.ui true
git config --global user.name "Ваше Имя"
git config --global user.email "Ваш e-mail"
ssh-keygen -t rsa -C "Ваш e-mail"
Следующим шагом нужно открыть недавно сгенерированный ключ SSH и добавить его на Ваш аккаунт GitHub. Вставить вывод следующей команды нужно сюда
cat ~/.ssh/id_rsa.pub
Работоспособность можно проверить следующей командой:
ssh -T git@github.com
Вы должны получить что-то типа этого:
Hi Ваше имя! You've successfully authenticated, but GitHub does not provide shell access.
Прежде чем устанавливать Rails, нам необходимо поставить Javascript фреймворк NodeJS. Это даст возможность использования Coffeescript и Asset Pipeline в Rails, который объединяет и минимизирует Ваш javascript  код и ускоряет переход на продакшен.
Для установки NodeJS, добавим PPA репозиторий:
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Наконец устанавливаем Rails:
gem install rails
Теперь, когда Rails установлены, командой rails -v можно убедиться в корректности установки и узнать версию:
rails -v
# Rails 4.1.1

Rails поставляется с sqlite3 в качестве типа баз данных по умолчанию. Скорее всего, Вы не захотите использовать его, потому что она хранится в виде простого файла на диске. Скорее всего Вы захотите что-то более надежное, например MySQL или PostgreSQL.
И тот и тот хорошо документированы и широко используются на реальных проектах. Если Вы пришли с PHP, думаю Вам будет комфортнее с MySQL. Если Вы новичок в базах данных я предлагаю использовать PostgreSQL.
Установить MySQL сервер и  клиент можно из репозитория Ubuntu. Во время установки необходимо будет указать пароль root пользователя. Информация о пользователе далее будет использоваться в Rails приложении в файле database.yml
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
Установка пакета libmysqlclient-dev даст возможность скомпилировать mysql2 gem, который используется Rails для подключения к MySQL серверу.
Для более простой установки PostgreSQL 9.3 добавим новый репозиторий:
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.3 libpq-dev
Во время установки Postgres создание пользователя не предлагается, поэтому следующим шагом необходимо его создать с правами администрирования баз данных. Замените user на ваше имя.
sudo -u postgres createuser user -s

# If you would like to set a password for the user, you can do the following
sudo -u postgres psql
postgres=# \password user
Итак создадим новое приложение:
#### При использовании SQLite (не рекомендуется)
rails new myapp

#### При использовании MySQL
rails new myapp -d mysql

#### При использовании Postgres
# Необходимо поправить config/database.yml - добавить пользователя
# созданного ранее
rails new myapp -d postgresql

# Заходим в папку приложения
cd myapp

# Создаем базу данных
rake db:create

rails server
Теперь можно зайти на http://localhost:3000 и мы увидим наше первое web приложение!
В следующей статье я опишу свой шаблон набора гемов, который необходим для каждого нового приложения (devise, cancan, rspec...).