Ruby, RVM, Rails e MongoDB no Ubuntu 12.10

1º Atualizando apt-get

Abra o terminal e rode:

sudo apt-get update

2º Instalando pacotes necessários

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core \
zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf \
libc6-dev ncurses-dev automake libtool bison subversion nodejs

3º Instalando RVM (Ruby Version Manager)

O RVM permite instalar e gerenciar várias versões do Ruby. Mas nós usaremos só uma:

curl -L https://get.rvm.io | bash -s stable --ruby

Ao final da instalação do RVM é preciso iniciá-lo com o seguinte código:

source /home/your_user/.rvm/scripts/rvm

Para que o RVM sempre carregue ao iniciar o Terminal (com Bash), adicione a seguinte linha no final do seu ~/.bash_profile:

gedit ~/.bash_profile

Agora acrescente a linha. Na nova versão do rvm ele já acrescenta automaticamente.

[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

4º Definindo o Ruby default

Coloque o ruby 1.9.3 como default do seu usuário:

rvm --default use 1.9.3

Agora o comando abaixo deve funcionar:

ruby -v

ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]

5º Instalando o Rails (sempre rode o comando gem sem SUDO)

gem update --system
gem install rails

6º Primeira aplicação

No conexto da aplicação Rails, este provê funcionalidade equivalente, mas distinta do ActiveRecord. Como o Mongo é um banco de dados orientado a documento, este mapeadores são chamados Mapeadores Objeto-Documental (ODM) em oposição ao Mapeadores Objeto-Relacional (ORM). O importante é evitar carregar o ActiveRecord. Um jeito de de fazer isto é útilzar a opção –skip-active-record . Então você cria o esqueleto de sua aplicação assim:

rails new minha_nova_app --skip-active-record

Salve, feche e rode o comando abaixo no Terminal:

bundle install

Agora você pode rodar:

rails s

7º Instalando MongoDB

O pacote do mongodb no repositório padrão do Ubuntu normalmente estão desatualizados, é aconselhável instalar a versão do repositório da 10Gen, mas infelizmente eles não tem um PPA. Para adicionar o repositório deles, antes você deve copiar a chave e depois adicionar o endereço na sua lista:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo sh -c "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' >> /etc/apt/sources.list"

Depois disso, atualize a lista de pacotes e instale o mongo:

sudo apt-get update
sudo apt-get install mongodb-10gen

Essas instruções irão baixar e instalar o pacote, criar um usuário mongodb e configurá-lo para rodar como um serviço usando o upstart. Você pode verificar o status e iniciar/parar o banco com os seguintes comandos:

service mongodb status
sudo service mongodb stop
sudo service mongodb start

Tenha em mente que o MongoDB irá criar arquivos de journaling em /var/lib/mongodb/journal que ocuparão um total de 3.1 GB, garanta que há espaço suficiente no seu disco. Você pode ver as instruções oficiais emhttp://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

8º Instalando o driver do Mongo em Ruby

gem install mongo

Para uma significativa melhora na performance,  instale o gem  bson_ext . Utilizando o C compilado ao invés do Ruby, este gem acelera muitíssimo a serialização BSON.

gem install bson_ext

9º Leia a documentação do MongoDB para Ruby

http://pt.wiki.mongodb.org/display/DOCS/Rails+3+-+Getting+Started . Depois leia este: http://mongomapper.com/documentation/getting-started/rails.html

http://mongoid.org/en/mongoid/docs/installation.html

10° Instalando Memcache

sudo apt-get install memcached libmemcached-dev
gem install dalli

11° Instalando Imagemagick

sudo apt-get install imagemagick libmagickwand-dev
gem install rmagick mini_magick

12° Instalando Git

sudo apt-get install git git-svn gitk ssh libssh-dev

13° Instalando Pushion Passenger

Com tudo instalado, podemos instalar o último componente: NGINX + Passenger. O Pushion Passenger é um módulo para os servidores Apache e Nginx para rodar aplicações Web Ruby, como por exemplo aplicações Ruby on Rails.

Para instalar o Passenger com Nginx faça:

sudo apt-get install libcurl4-openssl-dev gem install passenger sudo chown -R `whoami` /opt passenger-install-nginx-module –auto-download –auto

Quando ele terminar de instalar, você lembre-se que no arquivo /opt/nginx/conf/nginx.conf haverá o seguinte:

http {
    ...
    passenger_root /home/akitaonrails/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15;
    passenger_ruby /home/akitaonrails/.rvm/wrappers/ruby-1.9.3-p194/ruby;
    ...
}

Sempre que atualizar o passenger, atualize este trecho com a versão mais recente. Além disso, para configurar novas aplicações Rails, no mesmo arquivo configure da seguinte forma:
server {
   listen 80;
   server_name www.yourhost.com;
   root /somewhere/public;   # <--- be sure to point to 'public'!
   passenger_enabled on;
}

Onde /somewhere é onde está o código da aplicação Rails, sempre completando com /public para o Passenger saber o que fazer.

Na instalação eu trapeceei um pouco: como instalei o RVM em single-mode não dá para instalar o nginx usando o script do Passenger via sudo. Por isso mudei o dono do diretório /opt. Precisamos mudar de volta:

sudo chown -R root /opt

Agora queremos que o NGINX inicie automaticamente sempre que o servidor reiniciar, para isso podemos usar da ajuda do script de inicialização feito pelo Linode:

wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh
sudo mv init-deb.sh /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

Inicie ou pare o NGINX como qualquer outro serviço no Ubuntu:

sudo service nginx start
sudo service nginx stop
sudo service nginx restart

Fonte: https://github.com/danielvlopes/ruby-unix/blob/master/pt/ubuntu_12_04.md

http://akitaonrails.com/2012/08/13/ruby-e-rails-no-ubuntu-12-04-lts-precise-pangolin

http://pt.wiki.mongodb.org/display/DOCS/Ruby+Language+Center

1 comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s