Se você quer aprender sobre Ruby on Rails, nesta série iremos falar desde como configurar um ambiente para desenvolvimento no Rails, passando pela criação dos controles, models, rotas e todas as configurações necessárias para construirmos nossas primeiras aplicações em Rails.

Neste primeiro post, irei mostrar como configurar um ambiente rails utilizando dois softwares muito úteis, o virtual box e o vagrant.

Instalação do Virtual Box e do Vagrant

O Virtual Box é um software que irá emular uma máquina virtual dentro da sua máquina. Deste modo conseguimos isolar nosso ambiente de desenvolvimento da nossa máquina primária. Isto é bastante útil q para não poluirmos nossa máquina principal, com servidores de banco de dados e etc. O Vagrant é responsável por tornar as tarefas de gerência destes ambientes mais fáceis, além de possuir as boxes, que permitem criar ambientes prontos, que podem ser rapidamente baixados e instalados.

Primeiramente baixe o software Virtual Box no site oficial https://www.virtualbox.org/wiki/Downloads conforme a versão do seu sistema operacional. Faça a mesma coisa para o Vagrant, https://www.vagrantup.com/downloads.html . São apenas instalações simples, qualquer dificuldade posso ajudar nos comentários. Após instalado, abra um novo console, e crie um novo diretório com um nome para identificar sua vm(virtual machine). Em sistema unix você pode usar o comando mkdir para esta tarefa. Após isso acesse esse diretório.

Em seguida, iremos fazer o download de uma box vagrant que servirá como base para nosso ambiente Rails. Eu escolhi para este tutorial, uma box com Ubuntu 14.04 LTS, que é a versão de suporte extendido do Ubuntu atualmente.

Para baixar a box utilize o comando:

vagrant box add ubuntu/trusty64

Aguarde o término do download da máquina. Após baixar, use o comando abaixo para iniciar uma nova instância do vagrant.

vagrant init ubuntu/trusty64

Este comando irá criar um arquivo chamado VagrantFile no diretório atual. Abra este arquivo e iremos ver algumas linhas do mesmo. Na linha “config.vm.box” temos o nome da box que este arquivo irá iniciar, certifique-se que o valor do mesmo seja:

config.vm.box = "ubuntu/trusty64"

Localize a linha:

# config.vm.network "private_network", ip: "192.168.33.10"

Esta linha deve ser descomentada, retirando o ‘#’ na frente da mesma. Assim habilitamos uma rede interna, para que possamos acessar a máquina virtual a partir da nossa. para quem tiver interesse, existem outras configurações intessantes neste arquivo, no momento não irei cita-las, talvez em outra série.

Salve o arquivo e feche-o. Em seguida, volte ao terminal e execute o comando:

vagrant up

Após rodar este comando, uma nova máquina será criada e iniciada. Após o término da criação, utilize o comando abaixo, para fazer uma conexão SSH com a vm.

vagrant ssh

Dentro do ambiente de desenvolvimento, temos o diretório /vagrant, que será um espelho do conteúdo do diretório que criamos anteriormente, inclusive você verá os arquivos “Vagrantfile” no interior do mesmo.

Configurando o ambiente Ruby On Rails

Inicialmente, vamos começar atualizando os pacotes de software da VM. Utilize o comando:

sudo apt-get update

Após vamos instalar as dependências necessárias para que os compiladores do rails funcionem. Execute o comando abaixo:

 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 libffi-dev -y 

Após tudo instalado, estamos prontos para baixar o rbenv, um gerenciador de versões para o ruby.

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Estes comandos irão baixar o rbenv, e configurar as váriaveis de ambiente necessárias.

Instalando o Ruby

Após a instalação do rbenv, é bastante simples instalar versões do ruby, irei instalar a versão mais recente do ruby atualmente, a 2.2.3

rbenv install -v 2.2.3

Após fazer a instalação da versão é necessário ainda dizer ao rbenv qual a versão do ruby usada atualmente, com o subcomando global.

rbenv global 2.2.3

Deste modo, conseguimos fazer a instalação de várias versões do ruby, e depois alterar facilmente entre elas usando o global. Após isso, podemos ainda rodar o comando abaixo para verificar a versão ativa do ruby.

ruby -v

Para finalizar, vamos definir que não queremos que o ruby baixe toda a documentação a cada gem instalada, visto que isto pode ser bastante demorada. Para isso vamos executar:

echo "gem: --no-document" > ~/.gemrc

Após instale o gerenciador de gems bundler, para controlar as dependencias dos aplicativos.

gem install bundler

Instalando o Rails

Iremos finalmente instalar a gem Rails, para isto execute o comando abaixo (poderá ser adicionado o parâmetro -v para baixar uma versão em especifico)

gem install rails

Toda vez que for instalada uma nova versão do ruby ou de uma gem que forneça comandos, será necessário rodar o comando:

rbenv rehash

Ao final, verifique se ocorreu tudo corretamente executando o comando:

rails -v

#Rails 4.2.4

Como no pipeline dos no rails, o mesmo faz uso de coffeescripts e miniaturaização automática de assets, é necessário ter instalado algum javascript runtime. Neste tutorial iremos instalar o node js.

Para isso primeiramente adicione o repositório dele através do comando:

sudo add-apt-repository ppa:chris-lea/node.js

E em seguida faça o update dos pacotes do apt-get e a instalação do nodejs.

sudo apt-get update
sudo apt-get install nodejs

Instalação do Mysql

O Rails suporta vários tipos de bancos, irei instalar agora o mysql, que será usado nos tutoriais desta série. Caso sinta-se a vontade, você poderá instalar outros bancos. Execute o comando abaixo para instalar os pacotes referentes ao mysql.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

Após instale a gem mysql2, responsável por fornecer as funções do mysql nas aplicações ruby.

gem install mysql2

Com isso o ambiente está configurado. Vamos criar uma aplicação de testes para verificar se tudo está funcionando. Para isso execute o comando:

rails new testapp -d mysql

Isto irá criar um novo app utilizando o banco de dados mysql por padrão. Acesse o diretório criado testapp Devido a uma incompatibilidade da versão 4.2.4 do rails com a gem mysql2, devemos editar o arquivo Gemfile, para buscar uma versão mais antiga desta gem. Para isto localize a linha:

gem 'mysql2'

E substitua por:

gem 'mysql2', '~> 0.3.18'

Caso você tenha definido uma senha para o banco de dados, você deve informa-la no arquivo config/database.yml preenchendo o valor do campo password:

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

Após, execute o comando abaixo para criar o banco de dados:

rake db:create

Para visualizar a aplicação no ar, acesse o endereço da máquina (que pode ser obtido através do comando ifconfig) na porta 3000, no meu caso é http://192.168.33.10:3000/.

No próximo post, veremos como criar nossa primeira aplicação rails, até lá.