Bizarro: Ruby 1.9.2 no Windows. Nativo x “emulado”

15 12 2010

Mais uma vez, Ruby e Windows num mesmo post hehehe.

Todo mundo sabe, Ruby no windows é lerdo.

Algumas coisas não funcionam, algumas gems são incompatíveis, tudo isso é fato.

Todo mundo também sabe que o @luislavena é um dos grandes responsáveis por tornar essa experiência menos dolorosa. Menos dolorosa.

Você já deve ter ouvido dizer que a ignorância é uma benção, não?

Pura verdade.

Se você experimentar programar Ruby no Linux vai ver que tudo funciona mais fácil e mais rápido.

É gritante a diferença de velocidade, o que acaba impactando no tempo de desenvolvimento também, ou seja, se você pode, use linux (ou OSX).

Se você não pode, vamos lá.

Eu li sobre um jeito de rodar linux dentro do windows, sem emulador.

Sim, sem vmware, sem virtualbox.

Fui caçar no google e achei o bicho: Colinux

Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows 2000/XP/Vista/7, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software.

A instalação e configuração do Colinux são um parto, mas os caras do andLinux deixaram a coisa um pouco melhor:

andLinux is a complete Ubuntu Linux system running seamlessly in Windows 2000 based systems (2000, XP, 2003, Vista, 7; 32-bit versions only). This project was started for Dynamism for the GP2X community, but its userbase far exceeds its original design. andLinux is free and will remain so, but donations are greatly needed.
andLinux uses coLinux as its core which is confusing for many people. coLinux is a port of the Linux kernel to Windows. Although this technology is a bit like running Linux in a virtual machine, coLinux differs itself by being more of a merger of Windows and the Linux kernel and not an emulated PC, making it more efficient. Xming is used as X server and PulseAudio as sound server.
andLinux is not just for development and runs almost all Linux applications without modification.

A grande limitação é somente poder rodar em win 32. A grande maioria dos desenvolvedores que eu conheço roda win 7 64. Mas se você roda winxp num Pentium E2200 como eu, alegre-se!

A instalação é super simples, padrão next next finish, tem a documentação completa no site.

Não vou entrar em detalhes aqui sobre a instalação do ambiente ruby no ubuntu, mas se vc procurar vai achar montes por ai, viva o santo google.

No teste tenho instalado em ambos “ambientes”

Windows:

ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
Rails 3.0.3

andLinux:

ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
Rails 3.0.3

vou criar uma aplicação nova em ambos com:

rails new testeperformance

vou criar o suficiente para um teste simples com:

rails g scaffold pessoa nome:string

agora vou gerar o banco e rodar os testes padrão com:

rake db:migrate

e

rake test

Resultados:

Windows:

Loaded suite C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader
Started
.
Finished in 2.156195 seconds.

1 tests, 1 assertions, 0 failures, 0 errors, 0 skips

Test run options: –seed 11815
Loaded suite C:/Ruby192/lib/ruby/1.9.1/rake/rake_test_loader
Started
…….
Finished in 2.874927 seconds.

7 tests, 10 assertions, 0 failures, 0 errors, 0 skips

Test run options: –seed 37819

andLinux:

Loaded suite /home/alex/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.
Finished in 0.190003 seconds.

1 tests, 1 assertions, 0 failures, 0 errors, 0 skips

Test run options: –seed 29506
Loaded suite /home/alex/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
…….
Finished in 1.020015 seconds.

7 tests, 10 assertions, 0 failures, 0 errors, 0 skips

Test run options: –seed 25629

A diferença é imensa, já imaginou rodar isso em uma aplicação grande?

Ambos ambientes ruby e rails são recém instalados.
Os testes foram executados repetidas vezes.
Em todas as vezes a diferença de tempo é proporcional.

Conclusão:

Bizarro. Nesta máquina usarei o andLinux para desenvolvimento Ruby.

Ah! o GVIM fica perfeito nele também. Rápido e todos plugins funcionam.





Ruby e Rails no Windows 7 – Atualizado

22 04 2010

Fica claro quando você começa a dar os primeiros passos em Ruby no Windows
que eles não foram feitos um para o outro.

Faça uma pergunta num forum/mailing list e você vai receber, em 99% dos casos, um “instale linux”.

Não que não seja uma boa idéia, o ruby é muito mais rápido e estável atualmente em ambiente unix e certas coisas simplesmente não funcionam no Windows. Mas nem sempre é possível trocar de S.O.

Seja lá qual for o seu motivo, é possível (e nem tão ruim assim) instalar, desenvolver e rodar aplicações Ruby no Windows.

Vou detalhar neste e nos próximos posts a instalação e configuração do ambiente.

1. Passo: Configuração do Console.

Baixe o Console2, um excelente substituto para o cansado Prompt do DOS, o Console2 tem tabs, transparência, montes de configurações é grátis e open source.

Console2

Console2

2. Passo: Instalação do Ruby

Our goal, in combination with the official rubyinstaller.org website, is to provide users and developers working on Windows® systems an easy way to quickly get started using Ruby by providing Windows-based installers (and 7zarchives) containing a fully functioning baseline MRI (Matz’s Ruby Implementation) Ruby environment tuned for Windows-based systems.

While the RubyInstaller allows you to easily enhance and customize your Ruby installation using Ruby’s standard RubyGems packaging system, we also provide tools such as the Development Kit that enables both users and developers to build native Ruby C extensions on their local Windows-based systems.

Although building native Ruby C extensions on Windows-based systems has historically been a problem, we believe the combination of the RubyInstaller, our development tools, and the growing community of Ruby on Windows users and projects will help make this a concern of the past.

Enjoy!
The RubyInstaller Team

Precisa dizer algo?

Vá em download, e baixe a versão 1.8.6 1.9.2 1.9.3, a instalação é no clássico next, next, finish. Recomendo que você deixe o caminho padrão que o instalador sugere.

Na mesma página, baixe o devkit  e descompacte-o  no diretório onde instalou o ruby ( c:\devkit é uma boa idéia), vamos usá-lo para instalar gems que usam código nativo (C), portanto precisam ser compiladas. Lembre de fazer isto em todas versões de ruby que baixar do RubyInstaller.

Mais info sobre como instalar e o que faz exatamente o devkit aqui.

Abra o Console, e digite:

 C:\gem update --system 

Para atualizar suas gems.

Se você não sabe o que são e como funcionam as Ruby Gems, é bom dar uma lida antes de continuar: http://docs.rubygems.org/

Quando você instala uma gem, são instalados os arquivos de documentação para o Rdoc e ri (entenda mais). Eu prefiro ler a documentação online, e acho que a instalação dos docs demoram demais.

Para evitar que a documentação seja instalada você pode usar as flags –no-ri e –no-rdoc. Ex.:

gem install nomedagem --no-ri --no-rdoc

Você pode deixar esta opção como padrão, crie um arquivo de nome .gemrc no seu diretório Home, no meu caso c:\Users\Alex com o seguinte conteúdo:

gem: --no-ri --no-rdoc

Você pode querer ter mais de uma versão de ruby no seu PC, o RubyInstaller tem disponível versões da série 1.8.x e 1.9.x. Você pode também querer utilizar IronRuby ou Jruby.

No linux e ruby, usa-se o RVM e não ter algo semelhante no Windows me impedia de fazê-lo.

Acontece que os caras do RubyInstaller não estão brincando quando dizem que pretende facilitar a vida de quem usa Windows, e fizeram o pik, o equivalente do RMV no Windows.

O pik está disponível como gem, logo, a instalação é trivial:

gem install pik

Agora instale o executável do pik em algum lugar que esteja no seu PATH:

pik_install C:\Windows

Pronto, agora instale quantas versões de ruby quiser, tomando o cuidado de não reescrever o path, nem o diretório de instalação.

Para cada versão instalada, você deve configurar o pik:

pik add C:\ruby187\bin

Na página do pik no github você encontra a referência completa dos comandos e funcionalidades.

3. Passo Instalando o Rails

O modo mais simples é instalar a gem. Usando o pik você consegue instalar a gem em tudas versões de ruby que tiver instaladas:

pik gem install rails

Se você está começando agora com rails, provavelmente vai querer fazer o clássico tutorial do Blog.

Nesse tutorial é necessário um banco de dados, então, vamos fazer nossa instalação conversar com o sqlite.

No site do sqlite, na sessão de downloads procure pela versão para windows, “This ZIP archive contains a DLL for the SQLite library version  3.x.x.”.

Eu costumo descompactar dentro da pasta bin de cada instalação de ruby.

feito isto, é só instalar a gem:

pik gem install sqlite3-ruby

Pronto, agora você tem o básico necessário para começar a brincar de Ruby e Rails no Windows.

Recomendo também, a inscrição no grupo do Google Rails-BR

 

Divirta-se!