Sempre que eu tenho que reconfigurar o meu ambiente de desenvolvimento Ruby on Rails acabo perdendo um tempão tentando me lembrar de tudo que eu tenho que fazer. Por isso achei interessante descrever esses passos aqui. Portanto, o que você encontrará aqui é uma receita de bolo bem específica. Se você quer saber o que é cada coisa que estamos instalando aqui, então saiba que você está no post errado.

O ambiente terá:

  • Git
  • Svn
  • Gem
  • Ruby
  • RVM
  • RSpec
  • Rails
  • Vim, SQLite3, cliente MySQL e outros

Todos os passos abaixo foram testados no Ubuntu 12.04. Se você estiver com dúvidas sobre a sua versão então experimente o comando abaixo:

$ lsb_release -a

Ok! Vamos colocar a mão na massa. Nosso primeiro passo é instalar a maioria das coisas que precisamos via apt-get. Segue abaixo a linha mágica que faz isso. Não esqueça do sudo, ok?

$ sudo apt-get install build-essential subversion git-core vim curl ruby ruby-dev rubygems rake irb zlib1g-dev libssl-dev libreadline-dev sqlite3 libsqlite3-dev nodejs libmysql-ruby libmysqlclient-dev

Com isso a gente já instalou o git, ruby, svn e o gem. Experimente:

$ git --version
git version 1.7.9.5

$ ruby --version
ruby 1.9.3

$ svn --version
svn, versão 1.6.17

$ gem --version
1.8.24

O Ubuntu não é fantástico? Fez o download de tudo e instalou tudo como mágica pra gente.

Agora é a vez do RVM:

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

O curl irá acessar a URL acima e baixará o script de instalação para o bash, que por sua vez irá executá-lo.

O RVM será instalado no seu diretório HOME. No meu caso o home é cezinha. Rode a linha abaixo substituindo cezinha pelo nome do seu usuário:

$ source /home/cezinha/.rvm/scripts/rvm

Experimente para ver se o RVM tá de pé:

$ rvm --version
rvm 1.14.6 (stable)

Antes você precisava instalar manualmente os pacotes no RVM conforme o exemplo abaixo, mas agora basta ativar o autolibs pra ele fazer tudo sozinho.

$ rvm autolibs enable

Não esqueça de colocar no seu .bashrc a linha abaixo para que o RVM sempre inicie quando o shell for aberto:

$ vi /home/meu_user_name/.bashrc
..
[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

Prontinho! Agora estamos prontos para instalar o Ruby dentro do RVM. O Ruby que a gente instalou lá em cima era o do sistema operacional. Ele também é importante, mas falaremos sobre isso em uma outra oportunidade.

$ rvm install 1.9.3

O comando acima instalou o Ruby 1.9.3. Quer testar? Então experimente:

$ rvm use 1.9.3 do ruby --version

Caso você precise de uma outra versão do ruby, basta instalar. Por exemplo, vamos instalar a REE (Ruby Entreprise Edition):

$ rvm install ree

Difícil?  Não né?! Use o comando abaixo pra você quantos rubies você tem agora no seu RVM:

$ rvm list

Note que o ruby 1.9.3 está como default. Pra fazer isso basta executar o comando abaixo:

$ rvm use 1.9.3 --default

Para comutar entre os ruby use:

$ rvm use ree

ou

$ rvm use 1.9.3

ou

$ rvm use system

Este último utilizará o ruby do sistema. Ei! Chega de explicações. Como disse anteriormente, este post não tem como objetivo ensinar a usar nada, ok? Apenas instalar.

Você pode ainda listar quais são as versões do Ruby que estão disponíveis para o download via RVM. Basta usar o comando abaixo:

$ rvm list known

Vamos instalar agora o Rails dentro do RVM para o Ruby 1.9.3.

$ rvm use 1.9.3
$ gem install rails

Aguarde um pouco até o processo terminar.

Teste agora o rails:

$ rails --version
Rails 3.2.6

Veja ainda que o Rails não foi instalado no REE:

$ rvm use ree
$ rails --version
O programa rails não está instalado no momento.

Pra evitar problemas, volte ao 1.9.3:

$ rvm use 1.9.3

E por último, mas não menos importante, vamos instalar o RSpec:

$ gem install rspec
$ gem install rspec-rails

Importante:
Não esqueça de adicionar as linhas abaixo no Gemfile do seu projeto Rails caso ainda não estejam:

group :test, :development do
gem "rspec-rails", "~> 2.4"
end

Nem disso (execute dentro do diretório do projeto):

$ rails generate rspec:install

Deixando tudo mais colorido

Este passo não é tão importante, mas é bacana. Ele irá deixar o seu shell mais estilizado. Ele ficará colorido, mostrará a versão do ruby do RVM, mostrará o branch do git e o nome do diretório. Segue abaixo o que você deve colar em seu .bashrc:

..

ESC="\033" # This is the escape sequence
NO_COLOR="$ESC[0m"
IRED="$ESC[1;31m" # ANSI color code for intense/bold red
IGRN="$ESC[1;32m" # ANSI color code for intense/bold green

# From http://railstips.org/blog/archives/2009/02/02/bedazzle-your-bash-prompt-with-git-info/
# I had to change 'git-symbolic-ref' to 'git symbolic-ref'
function parse_git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo " ["${ref#refs/heads/}"]" # I wanted my branch wrapped in [], use () or <> or whatever
}

# from http://ariejan.net/2010/04/25/ruby-version-and-gemset-in-your-bash-prompt-yes-sir
function rvm_version {
local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
[ "$gemset" != "" ] &#038;&#038; gemset="@$gemset"
local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
[ "$version" != "" ] &#038;&#038; version="$version"
local full="$version$gemset"
[ "$full" != "" ] &#038;&#038; echo "${full}:" # the colon at the end is a delimiter, you could use a space instead
}

#PS1="\h:\W \u\$" # For reference, here's the default OS X prompt
#export PS1="\$(rvm_version)\W \$(parse_git_branch)\$ " # Without the colors

# I had to put the \[ and \] down here, as opposed to $IRED, to avoid wrapping funkiness.
export PS1="\[$IRED\]\$(rvm_version)\[$NO_COLOR\]\W\[$IGRN\]\$(parse_git_branch)\[$NO_COLOR\]\n \$ "

Você encontrará diversas versões deste script na web. Esta aí eu peguei do AkitaOnRails.

Pronto! Agora é só começar a trabalhar.

Espero que goste.