Abstraindo.com

RSS Twitter Facebook

12
jun

Eu estava com uns minutos livres antes de sair do trabalho quando resolvi que eu ia instalar a nova versão do Ruby (1.9.3) no meu RVM e fazer um projetinho para adiantar uma demanda que deve vir pra mim nas próximas semanas, mas derrepente me deparei com um grande problema! Um erro bizarro! Quem tem a coragem de cuspir na minha cara que ele é um [BUG]!

Eu instalei a rubie 1.9.3 com rvm install ruby-1.9.3 --with-gcc=clang (devido ao bug de compatibilidade com o LLVM do xCode), até aí tudo correndo bem, então mandei instalar o rails, o sistema instalou, mas o rodar o bundle install:

/Users/brunno/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault

Fui pesquisar e descobri que esse problema é uma falha ao utilizar requisições http via openssl pelo Ruby. Logo em seguida descobri que esse problema acontece com quem tem o openssl instalado via MacPorts! (mais…)

, , , , , , ,

13:00 - 12 de junho de 2012
29
set

Fala abstratos, depois de algum tempo sumido por causa de alguns projetos de quadrinhos, estou de volta com mais uma diquinha de RVM e essa é magnífica!

Lembra que conversamos sobre ter uma gemset para cada projeto? Então, agora vamos fazer isso de forma automatizada, mágica, elegante e o melhor de tudo isso, sem precisar digitar comando nenhum! Tá bom, tá bom, precisamos digitar alguns comandos para configurar isso, mas depois não precisa mais!

(mais…)

, , , , , ,

11:44 - 29 de setembro de 2011
2
set

Fala abstrato tudo bom? Depois do post sobre RVM, acho que algumas pessoas podem ter percebido que quando saimos do Terminal não fica salvo em lugar algum a Rubie e nem a Gemset que estávamos usando antes, e isso faz com que sempre precisemos digitar o comando rvm gemset list para saber em qual gemset e rubie estamos no momento.

Para evitar esse ‘passo’ eu editei meu arquivo ~/.bash_profile* com as seguintes linhas:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
PS1="\$(~/.rvm/bin/rvm-prompt) $PS1"

Pronto, agora quando você reiniciar o Terminal vai ter sempre a mostra a Rubie e o Gemset atual, pra mim facilita muito =)

* Se você não tiver o arquivo .bash_profile no seu diretório home, basta criá-lo ;)
** Vale lembrar que uso OS X (10.7), isso quer dizer que isso não funciona em Windows e pode não funcionar em algumas distros de Linux.

, , ,

16:46 - 2 de setembro de 2011
1
set

Todos já devem ter conferido o tutorial do Brunno sobre como instalar e utilizar o RVM, se não conferiu, confira!

Que tal isolar cada Virtual Host utilizando o apache para isolar o gemset utilizada para cada projeto?

Mãos a massa, você vai precisar de:

  • Apache2
  • Ruby 1.8.7
  • RVM 1.6.32
  • Passenger 3.0.8

* as versões são as que eu estou utilizando neste tutorial

Primeiro vamos decidir qual será o gemset utilizado, já decidiu? No nosso exemplo utilizaremos o gemset ruby-1.8.7-p352@abstraindo, então:

rvm gemset create abstraindo
rvm gemset use abstraindo

Abra seu httpd.conf, este pode estar em algum desse lugares:

  • Linux: /etc/apache2/conf/
  • MacPorts: /opt/local/apache2/conf/
  • Nativo MacOS: /etc/apache2/

Verifique se a seguinte linha está comentada, caso esteja: descomente-a.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Agora abra o arquivo httpd-vhost.conf, adicione as configurações de Virtual Host:

# Abstraindo
<VirtualHost *:80>
    ServerName dev.abstraindo.com
    DocumentRoot "/wolcan/rails_app/abstraindo/public/"
    RailsEnv "development"
    <Directory /wolcan/rails_app/abstraindo/public/>
        Options -MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Certo?

Agora vá ao terminal/console e digite:

rvm gemset use abstraindo

Caso você tenha mais de uma versão de Ruby instalado na sua máquina será necessário informar a versão do Ruby anteriormente.

Reinicie o apache e teste: http://dev.abstraindo.com

Funcionou? Caso você não tenha funcionado, verifique se a pasta existe ou se você não cometeu algum erro de digitação.

Agora vamos isolar o virtual host em um gemset específico, abra novamente o arquivo httpd-vhost.conf e adicione as seguintes linhas para nossa configuração:

# Abstraindo
<VirtualHost *:80>
    ServerName dev.abstraindo.com
    DocumentRoot "/wolcan/rails_app/abstraindo/public/"
    RailsEnv "development"
    <Directory /wolcan/rails_app/abstraindo/public/>
        Options -MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    SetEnv GEM_HOME /Users/Wolcanus/.rvm/gems/ruby-1.8.7-p352@abstraindo
    SetEnv GEM_PATH /Users/Wolcanus/.rvm/gems/ruby-1.8.7-p352@abstraindo:/Users/Wolcanus/.rvm/gems/ruby-1.8.7-p352:/Users/Wolcanus/.rvm/gems/ruby-1.8.7-p352@global

</VirtualHost>

No exemplo, estou definindo o seguinte:

GEM_HOME: Apontando para meu gem_path do gemset ruby-1.8.7-p352@abstraindo

GEM_PATH: Aponto para o gemset do @abstraindo, ruby-1.8.7 e para o gemset @global

Salve o arquivo, reinicie o apache e teste!

Funcionou? É isso aí! Qualquer dúvida é só comentar =)

Fontes:

Isolating gem sets under Passenger with RVM

RVM FAQ

, , , ,

00:41 - 1 de setembro de 2011
30
ago

Salve salve abstratos como vocês estão? Meu amigo Weverton já deu o chute inicial usando em um assunto que, já tem um tempo, estou querendo postar pra vocês, ele falou nesse e nesse post sobre Ruby on Rails, mas eu vou falar de algo mais voltado ao nosso ambiente de trabalho, o RVM!
Antes de mais nada, o que é RVM?

RVM significa Ruby Versions Manager, ou um gerenciador de versões Ruby. E daí você vira pra mim e pergunta: Pô Brunno, mas pra que eu vou precisar de gerenciador de versões para o Ruby?

E é aí que entra a resposta bacana: Meu amigo, o RVM não serve somente para gerenciar várias versões de Ruby, ele também server para criar conjuntos de gems específicas para cada um de seus projetos! Não é mágico? (mais…)

, , , , , , , , ,

21:50 - 30 de agosto de 2011