MouseOver Studio

MouseOver Studio header image 2

Aprendendo a desenvolver com JRuby (Parte 1: Configurando o ambiente)

February 4th, 2008 por Diego Carrion · 4 comentários

Vou começar a mexer com JRuby nesse momento.

Depois de pesquisar sobre o melhor IDE para trabalhar com JRuby cheguei a conclusão que o melhor é o NetBeans 6. O NetBeans é da Sun e os desenvolvedores do JRuby trabalham para a Sun então tem lógica. Para saber mais sobre NetBeans e Ruby/JRuby ingressar aqui.

Baixando NetBeans 6.0 Installer for Linux/English (en) netbeans-6.0-linux.sh (168.6 MB) MD5: 6b072e5e4baba945f48b7837cb944d93 …

O NetBeans baixou, fui no console e rodei ./netbeans-6.0-linux.sh , logo next next next. Foi criado um atalho no meu escritório, dois clicks e o NetBeans esta aberto.

Dentro do NetBeans, File > New Project . Na janela aberta escolhi Ruby como categoria e Rails Project como projeto.


Fiz click em Next. Apareceu uma janela perguntando sobre qual interpretador queria utilizar. Escolhi JRuby e depois de dar ok escolhi um nome de projeto, a base de dados com a qual ia trabalhar e novamente click em next. A janela mostrou que tinha a versão 1.2.5 do Rails. Fiz click no botão Update Rails para atualizar o Rails.

Atualizando Rails …

Opa! deu um erro: Exception in thread “main” java.lang.OutOfMemoryError: Java heap space . Vou dar click em close e tentar de novo.

Atualizando Rails …

A segunda tentativa deu erro também. Vou instalar na mão. No console mandei gem install rails –include-dependencies e vixi: The program ‘gem’ is currently not installed. You can install it by typing: sudo apt-get install rubygems . Esta bom então, mandei sudo apt-get install rubygems e seguidamente gem install rails –include-dependencies novamente.

Bulk updating Gem source index for: http://gems.rubyforge.org

Ahhh como assim, apareceu o erro ERROR: While executing gem … (Gem::GemNotFoundException) Could not find rails (> 0) in any repository . Google agora!

Abdul Qabiz falou que se rodar sudo gem update meu problema estaria resolvido, então vamos la. sudo gem update, seguido de gem install rails –include-dependencies novamente (terceira vez) e esperando.

Taráaaa! Agora sim:

Successfully installed rails-2.0.2
Successfully installed activeresource-2.0.2
Installing ri documentation for activeresource-2.0.2…
Installing RDoc documentation for activeresource-2.0.2…

Vou fechar o NetBeans, entrar de novo e repetir o processo. Antes disso, vou tunar um pouco o NetBeans mexendo no arquivo /etc/netbeans.conf, seguindo a lógica descrita nesse post.

Abri o NetBeans, fiz o processo novamente e continuava aparecendo uma versão antiga do Rails. Ao tentar atualizar acontecia o mesmo erro relacionado a memória. Depois de mexer por aqui e por la e pesquisar um monte descobri que o erro se dava por causa de um bug do NetBeans. A resolução do ticket estava como fixed então fui no trunk do NetBeans e puxei a ultima versão, lançada hoje. Instalei, executei, repeti o processo e dessa vez tudo saiu bem, a versão de Rails registrada era a 2.0.2 . Dei click em finish e projeto criado. :D

Fiz um click direito no nome do meu projeto e selecionei Run para ver se tudo estava funcionando perfeitamente. Foi aberta uma aba no output do NetBeans para o servidor WEBrick (que é o que vem por default) e apareceu o seguinte erro: rubygems.rb:379:in `report_activate_error’: Could not find RubyGem ActiveRecord-JDBC (>= 0) (Gem::LoadError).

Não tenho muito interesse agora em tentar concertar o erro porque não quero utilizar WEBrick, quero utilizar Mongrel porque em tudo lugar vejo falar que é muito bom e uma das melhores coisas que o Ruby tem.

Acessei Tools > Ruby Gems e percebi que existiam gems instalados desatualizados, assim que antes de fazer outro movimento, atualizei. Agora vou tentar instalar o Mongrel. Me dirigi na aba New Gems e procurei mongrel na lista gigante que apareceu. Seguidamente selecionei ele e click em Install. Escolhi para incluir as dependências e click em Ok.

INFO: `gem install -y` is now default and will be removed
INFO: use –ignore-dependencies to install only the gems you list
Successfully installed gem_plugin-0.2.3
Successfully installed mongrel-1.1.3-java
2 gems installed

Mongrel instalado, click em Close.

Acho que o Mongrel não esta instalado ou não corretamente. Fiz o processo de criar um novo projeto para ver se aparecia Mongrel na combo de servidores e não aparecia. Tentei rodar mongrel_rails no console para ver o que dava e o que deu foi um command not found. :) Vou instalar o Mongrel na mão mandando executar sudo gem install mongrel. Para variar um pouco, apareceu o seguinte erro:

Building native extensions. This could take a while…
ERROR: Error installing mongrel:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install mongrel
extconf.rb:1:in `require’: no such file to load — mkmf (LoadError)
from extconf.rb:1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.1/ext/fastthread/gem_make.out

Felizmente consegui achar a solução rapidamente aqui. Segui o processo especificado no post e depois o console ja estava reconhecendo o comando mongrel_rails. Mongrel instalado agora sim!

Reiniciando NetBeans …

Fiz o procedimento de criar um novo projeto e Mongrel apareceu nas opções de servidor.


Isso é bom, esta instalado corretamente e o NetBeans reconheceu ele. O problema é que não sei como fazer para que meu projeto rode no Mongrel e não mais no WEBrick. Fiz um click direito no nome do meu projeto e vi que tinha uma opção chamada Find, acessei ela e procurei por webrick, esperando que exista um arquivo de configuração onde e definido o servidor. Efetivamente parece que existe este arquivo, chamado private.properties, que tem uma propriedade chamada rails.servertype. Vou mudar o valor de WEBRICK para MONGREL, rodar o projeto e ver que acontece.


A boa noticia é que o projeto iniciou sobre o Mongrel. A ma noticia é que deu o erro Could not find RubyGem ActiveRecord-JDBC. Imagino que não tenho o gem ActiveRecord-JDBC na minha maquina então vou fazer um sudo gem install ActiveRecord-JDBC e ver que rola.

Instalou corretamente :D, versão 0.5. Vou tenta rodar novamente minha aplicação. Não deu certo. Acessei Tools > Ruby Gems e vi que ActiveRecord-JDBC não estava na aba Installed. Fui na aba New Gems, procurei ele e dei click em Install. Ou output da janela de instalação foi o mesmo do output do console, quando tentei instalar por ali. A diferença e que agora sim ActiveRecord-JDBC apareceu na aba Installed. Vou tentar rodar minha aplicação de novo.

Agora sim deu certo! A janela do output não apresentou nenhum erro e ao acessar http://0.0.0.0:3000/ foi apresentada uma pagina com o título:

Welcome aboard
You’re riding Ruby on Rails!


A página diz que ainda tenho que fazer algumas coisas, mas ficara pro próximo post. O preview do WordPress não esta funcionando e não sei se o texto esta muito longo ou não.

De qualquer jeito, ate a próxima parte!

Tags: Tutoriales · java · jruby · mongrel · netbeans · rails · ruby

4 respostas ate agora ↓

  • 1 Rodrigo Fante // Feb 4, 2008 at 6:34 pm

    Opa irei acompanhar, sempre quis estudar, mas ainda nao tive tempo, e com pouco tempo preciso de um material mais mastigado como esse seu.
    Abraçao e vlw

  • 2 Diego Carrion // Feb 4, 2008 at 7:27 pm

    É bom saber que alguem vai acompanhar Rodrigo. Espero que a próxima parte possa sair rapidamente porque também estou muito interessado em aprender sobre JRuby.

  • 3 Raul Libóorio // Feb 11, 2008 at 2:51 am

    Opa… info só complementar sobre o NetBeans (aos que querem usar e ainda não visitaram o site), o site tem um local pra fazer pedidos. Você deixa seu endereço e outros dados que eles te mandam a mídia com a versão mais nova do NetBeans, tanto pra Win, Linux e Solaris. Demora um pouco (algo em torno de 1 mês e meio), mas quem quiser nem que seja pra colecionar… é uma dica :)

  • 4 Diego Carrion // Feb 16, 2008 at 2:24 pm

    Obrigado pela informação Raul. Isso de enviar a mídia de graça acho muito bom, não tudo mundo tem recursos para baixar a aplicação pela Internet.

    Gostei da da idéia de colecionar, talvez peça um cd pra mim hahahah

Deixar um comentário