Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News RailsInstaller Provides Easy Rails on Windows Installation

RailsInstaller Provides Easy Rails on Windows Installation

This item in japanese


RailsInstaller provides Windows developers a great way to easily create Ruby on Rails 3 applications in no time.  Up until now, Windows developers would be on their own to setup Ruby, RubyGems, Rails and SQLite in order to begin to create their first Rails application.  Thanks to Dr. Nic Williams of Engine Yard and his team, it is much easier now.

The current RailsInstaller gives the developer:

  • Easy installation via Wizard
  • Rails 3.0.3
  • Ruby 1.8.7-p330
  • SLQite 3.7.3
  • Git
  • DevKit

InfoQ had the opportunity to talk with Dr. Nic Williams about the RailsInstaller project to get a better understanding of the project and what developers can expect now and in the future.

An initial thought might be why RailsInstaller is needed when developers can install each component on their own. 

A new user to Rails needs a Welcome Kit - a one-click installer to get started. If you have a friend who is interested in Ruby on Rails, what is the one URL you give them to get started and you'll know they'll have a good experience? If you are running a training course on Rails, how do you get everyone in your class ready to go? That's what RailsInstaller aims to solve. A one-stop solution for getting started on Rails.

Since much of this project sponsorship has been driven by the folks of Engine Yard we wondered if the development of the project was personal for Dr. Nic Williams or was it something Engine Yard had its sights on:

We love Ruby and we love Rubyists. We're all Ruby users at Engine Yard and we think the world would be a better place if every developer, every consultancy, switched from Java/PHP/.NET and started using Ruby on Rails for development.

Perhaps they will if we help make it easy. That's what we hope.

This project is also part of the Engine Yard commitment to supporting open source and contributing to the Rails community.

Projects like this has a lot of moving parts and are difficult to complete alone.  When ask who was involved in this project Dr. Nic reveals individuals who are well-known in the open source community:

Wayne E Seguin and Luis Lavena built the 1.0.0 release for Windows. Wayne did the two-week sprint and Luis was the jungle guide.

Wayne is well known for his very successful project RVM, the Ruby Version Manager, and has recently returned to Engine Yard. If you didn't know, there is more than one Ruby, and RVM makes it simple and consistent across many platforms to install and use any Ruby. RVM users only need to choose which Ruby they want to use.

Luis is the soft-spoken godfather of Ruby on Windows. He nurtured alone the old One-Click Installer, he conceived and created its replacement the new RubyInstaller ("RubyInstaller for Windows"). The One-Click Installers for Ruby have been downloaded over 5 million times over the last 5+ years. Incredible.

Many folks in the Ruby community know Ruby 1.9.2 is the latest and greatest Ruby implementation.  RailsInstaller ships with Ruby 1.8.7 and we wondered why this version:

There are two aims for a RailsInstaller installer (this week we released one for Windows) - can someone get started in developing Rails applications within 5 minutes; and are they using the basic tools that every existing Ruby developer is using? That is, step 1 - let them fall in love with Rails and Ruby. Step 2, can they merge into the existing, passionate Ruby community?

This thinking guides every decision. It is why we chose Ruby 1.8.7 instead of Ruby 1.9.2 for the Windows installer. In the Windows landscape, today, users have a much better, bug-free experience if they are using Ruby 1.8.7. A new user to Ruby on Rails, a new user to Ruby, isn't going to know this. So we made the decision for new users, packaged up the best Ruby for the job at the time, and shipped that.

When a RailsInstaller user falls in love with Ruby, learns about Ruby 1.9.2, and asks "Why don't have I Ruby 1.9.2?" and wants to try it, then they are more invested in that decision. They'll download Ruby 1.9.2, download DevKit, install all their gems, find bugs, raise tickets, and become wonderfully useful Ruby community members.

One day we'll ship Ruby 1.9.2. Or perhaps Rubinius or JRuby. Whichever gives the best experience out of the box.

But first, we just want them to love Ruby and love Rails.

InstantRails has been a reliable environment for Windows developers to get started with Ruby on Rails while still using Windows.  InstantRails provides a Graphical User Interface (GUI) to help Windows users who may not be familiar with the command-line tools used by Ruby or Rails.  Dr. Nic explains the current thinking with regards to the future of RailsInstaller and whether or not there will be a GUI for developers:

To the reading audience, let it be known that the interviewer, Rob Bazinet, is the last maintainer of InstantRails and that he and I chatted at length about InstantRails 2011 (now named RailsInstaller) last year. This is a loaded question!

In 2005 through 2008 we had InstantRails, which was how I got started in Rails in 2005. Unfortunately, it ceased development in 2007 and its last release packaged Ruby 1.8.6 which does not work with Rails 3. The InstantRails codebase was quite old too - historically it dated pre-2005 I believe - and we decided a new codebase was the quickest path.

Thanks to you, Rob, for updating the InstantRails site with a link to RailsInstaller 1.0 as the "next release" of InstantRails.

I'm still not sure what approach to take for a GUI. Build a standalone GUI? Just for users of the RailsInstaller for Windows, or do we create a GUI for RailsInstaller for OS/X too? Or do we focus on integrations with the popular IDEs or text editors that a Windows or OS/X user might have been using when they first learned about Rails and tried the Welcome Kit. That is, perhaps we focus on Visual Studio integration and XCode integration?

Good question, sorry I don't have a good answer yet.

Developers who are familiar with running Rails on Linux know the ins and outs of the Apache Web Server, but the needs of Windows developers are different.  Discussion moved to the deployment and hosting strategy on Windows since developers here typically use IIS:

What's great about RailsInstaller is that it immediately focused the conversation between "people who know things" around these topics. One example conversation is about getting IIS and Rack working together (the low-level interface to a Rails app).

Brian Hogan just offered a list of things that Windows users are interested in when approaching Ruby:

* "How do I use this with ActiveDirectory?"
* "How do I use all the .Net libraries I currently use?"
* "How do I integrate this with SharePoint?"
* After all of that, they then ask the "IIS" question.

If we come up with a great solution to deployment on Windows, then it might get packaged into RailsInstaller itself or an extension package.

When asked about getting developers involved in helping out with the project:

The installers and website are all open source and hosted on GitHub. The release schedule for RailsInstaller for Windows is being fleshed out on Pivotal Tracker.

It’s important for any project, especially a new one, to have a place developers can go to find support, to ask questions, report bugs and make suggestions.

The RailsInstaller Google Group is currently focused around developer discussions.

Most "bugs" that are discovered are ultimately re-reported to the individual packaged projects, such as RubyInstaller, core Ruby, Rails, Bundler, etc. The group & ticket system give users an entry point to "I'm having this issue" and the community being able to guide them to a solution. Hopefully it works well as a way to aid new Rails users.

If we successfully select and package items into the installer, then we can minimize the need for "bug"-related questions. Hopefully. That's my dream.

Getting RailsInstaller out and getting all the positive feedback has been wonderful. A man's got to dream. So far it's a good dream.

For more information about the project and get started, please visit the RailsInstaller web site

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Interview with Wayne & Dr. Nic

    by Miles Forrest,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    There's an interview on the coderpath podcast talking about the project:

  • Re: Interview with Wayne & Dr. Nic

    by Owen Dall,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    This is a great initiative that needs all the support we can muster.

  • Thanks for a great job!

    by Robert Sullivan,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I've installed Rails and Ruby the usual way (easy way, I think) on the Mac, but for Windows, I chose RailsInstaller (as recommended by Roy Osherove), having read various posts declaring a Windows install as either "impossible, try linux" to "install cygwin, etc" and so I was suitably impressed when it seemed just as easy, if not easier, than on the Mac.
    Just to give an example, as a Java/C++ programmer, I'm used to rather cryptic install errors. But occasionally you come across very polished software with excellent error messages, so you can tell it was nicely crafted. Snort comes to mind. But also RailsInstaller. I followed the instructions, and the first try, something didn't work, so there was a message to install Sql lite. I typed the one line command in, and voila, everything working.
    Again, coming from the Java world (granted, extremely complex), and, for example, having recently installed Spring/Adobe Flex/Flash, and running into all sorts of compatibility errors (no finger pointing here, but lots of disconnects between the various libraries), I think I have a little bit of reference to tell what a lot of work this was, and how it certainly wasn't easy. Excellent job!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p