Posted on Mar 29, 2008

Progress of One-Click Installer (RubyInstaller)

RubyInstaller

It seems the post at RubyInside generated quite a reaction, rest assured that One-Click Installer will not die, but we should shake the ground and put new blood in it.

For that job, the move to MinGW was the best looking alternative I found. Even after the negative comments and the lack of feedback and general troubleshooting from the community, we moved forward.

What’s our plan? (you may ask).

Right now the idea is play with the generated Ruby version (from now own Installer3 Ruby) and find something that wouldn’t work. Since there aren’t too many things out there that will work out of the box.

Tip: For those who don’t know where to get the sandbox, look here

The following are our list of priorities.

Move the work being done in the Bazaar repository to Subversion

I know bzr is not spread like git among developers, but is not so complex to use. In any case, I’ll push updates into rubyinstaller svn repository and allow integration from it, so developers familiar with subversion can work with us :-D

Provide a simple One-Click Installer Developer Kit

This is almost done, since you can right now grab the generated sandboxed MinGW and MSYS installation (using the Installer3 recipes), add it to your PATH and you’re done. What it misses right now is a proper Windows Installer and the creation of some shortcuts for the standard console and other to start the MSYS (Bash) console.

This will make it more easy for developers and users to install and use gems that requires a compiler and that will not be prepared for MinGW. Read the next point about this.

Improve compatibility of existing gems.

Ruby on Windows definition is shared among three platforms (RUBY_PLATFORM): i386-mswin32 (VC), i386-mingw32 (MinGW) and last, but not least i386-cygwin. The later ships with is own compiler, so mixing environments with that will only make your head hurts.

Regarding the other two platforms, a lot of projects uses regexp (regular expressions) to determine if you are running on Windows. Some of them only consider win32, which will leave mingw32 and even x64 version of Ruby out of the equation.

I even see others that look for win and mark it as Windows… wrong! Ruby for OSX also fall into this category (darwin?).

So, since I can’t work on projects I don’t use on a daily basis, I encourage everybody list the gems and extensions that cannot run out of the box with the tools provided by the Developer Kit and the Installer3 Ruby.

I’ll try to add them to our Continuous Integration system and provide the patches needed to fix most of the situations with them, but will require also original developers merge them and start providing releases for it.

So, where we are right now.

RubyGems 1.1.0 is out, which is compatible with this new Installer3 Ruby.

I’ve in my list, ordered by priority:

Mongrel
sqlite3-ruby
mysql
win32console
rspec

Please share with me your gems that don’t work out of the box either because there is no pre-compiled gem (and it requires special
libraries) or because it looks wrongly for the RUBY_PLATFORM.

Just open a Integration Request at the Support and Continuous Integration Requests tracker in RubyForge, provide project name, repository URL, category of usage (ui, console, database, testing, etc.) and comments regarding your problems with it.

Thanks everybody for your support, your mails and your comments either in RubyInside, directly to my inbox, IM or IRC.

1 The new logo and icons of RubyInstaller were created by Rodolfo Budeguer from Estudio Domo

8 Comments

  • [...] tutorial is for *nix, as I’m still investigating win32 extensions, and jruby + .net/ironruby extensions. So when I figure that out – hopefully with the help of other [...]

  • sgwong says:

    The script works very well. Appreciated for your hard work on it. Although some ruby extension is not able to compile, but it is usable for me now. I had did some benchmark to compare the ruby MinGW with the ruby VC6 and the MinGW gain 10% speed increment. It is a really good news for me. :)
    I had compiled the ruby-gnome with the new MinGW ruby. It is working well also, I had a working ruby with the ruby-gnome binding. Now, it is the time for me to compile all the gems I want.

  • Luis says:

    Great to know it worked for you!

    Yeah, some extensions will not compile, basically Zlib, OpenSSL and Readline were the only ones produced right now.

    If you want any other of the extensions bundled in ruby code, please feel free to take a look and hack some rake tasks for it, you can see that is not complex at all! :-D

  • sgwong says:

    I just noticed that the ruby irb consumed a lot of cpu usage. For other ruby program, this syndrome is not occur. May be it is the problem cause by the Readline library? I thought I had read the same problem before on the forum, but I had forgotten which forum already.

  • Luis says:

    Yes, 1.8.6-p114 sufer from that, that’s why the pre-compiled version I’m offering at http://dump.mmediasys.com/installer3 is form SVN (which this issue is already been fixed).

    I suggest you can try rake CHECKOUT=1 to force the use of subversion latest version instead of the packaged source code.

  • she says:

    Its great to see someone with a lot more knowledge than I have tackle this.

    I am using Linux almost exclusively but I do have a windows box, and I must say I am happy with Ruby on windows so far – i write on Linux, and it works on Windows too (sometimes with slight modifications, but thats it)

    Thanks for your effort, from my point of view i LOVE these blogs. They contain a lot of info too :)

    (The other blog i like a lot is http://rubyonwindows.blogspot.com/ the snippets are very useful)

  • lastobelus says:

    Is there any chance of building the installer on an XP64 system?

  • Luis says:

    lastobelus: by building what you mean? create a x64 Ruby or just build the Ruby and the installer in a x64 system?

    There are two different aspect for what are you asking:

    One is having Ruby built for x64 platform, and the other is make the installer properly behave on a x64 bits installation of Windows.

    The first item requires you build the Ruby dependencies (GNU Readline, GDBM, OpenSSL, etc) with a 64bits compiler. Right now the two x64 compilers available are VC2005/2008 in x64 mode and MinGW64 which is not official.

    The second one is tightly related to the first one.

    In any case, all the x86 applications can be installed inside x64 system under WoW (World of Windows compatibility layer) which enables 32bits applications run inside 64bits OS.

    Right now I don’t have a x64 system handy to check it out, so please report all the issues you find to rubyinstaller-devel mailing list here