Instalar GEM na DreamHost
Eu utilizo a DreamHost para hospedar o meu blog, pra mim é uma boa empresa de hospedagem, visto que até hoje tive poucos problemas lá, e gostaria de compartilhar com vocês como resolvi um deles.
Instalar gems
Você tem uma lista de gems disponível, porém algo que é muito comum é você precisar instalar algumas gems que não tem no servidor. Então você pode instalar estas gems ou dar um freeze delas no seu projeto. Eu considero a primeira a melhor solução. Então quero explicar como fazer isso. A DreamHost nos disponibiliza um tutorial de como fazer isso (inglês) e mostro como isso funciona em português.
Configurando o ambiente
Primeiro você precisa criar um diretório para armazenar as suas gems:
cd ~ mkdir .gems
Agora vamos atualizar o seu caminho para utilizar os novos diretórios. Abra o arquivo ~/.bash_profile no seu editor favorito e adicione estas linhas.
export GEM_HOME="$HOME/.gems" export GEM_PATH="$GEM_HOME:/usr/lib/ruby/gems/1.8"
Instalando as gems
Você precisa criar mais alguns diretórios:
mkdir bin lib src
Agora abra o arquivo ~/.bash_profile e adicione estas linhas:
export PATH="$HOME/bin:$HOME/.gems/bin:$PATH" export RUBYLIB="$HOME/lib:$RUBYLIB" # this ensures our gem install processes don't get killed by the DreamHost police alias gem="nice -n19 ~/bin/gem"
Para que estas mudanças tenham efeito execute este comando.
source ~/.bash_profile
Agora vamos instalar o rubygems.
cd ~/src wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz tar xzvf rubygems-1.3.0.tgz cd rubygems-1.3.0 ruby setup.rb --prefix=$HOME
Então criamos um link simbólico do gens1.8 para gem
cd ~/bin ln -s gem1.8 gem
Verifique se agora está usando o rubygems correto:
which gem # should return /home/USERNAME/bin/gem gem -v # should return 1.3.0
Se tudo estiver certo você já pode instalar as suas gems, como por exemplo:
gem install rails
Configurando o Rails
Depois que fiz este passo a passo só tive mais um problema, o passenger não conseguia entender que o caminho do meu gem_path havia mudado.
Então encontrei uma solução pra isso no Google, que é bem simples, abra o arquivo config/environment.rb dentro da sua aplicação e adicione a linha abaixo antes do require do boot:
ENV['GEM_PATH'] = '/home/[1]USERNAME/.gems:/usr/lib/ruby/gems/1.8' require File.join(File.dirname(__FILE__), 'boot')
1 Não esqueça de trocar pelo nome do seu usuário.