This was asked, and asked, and asked too many times, so here we go.
Since I don’t want to hold anyone to try it, I’ll like to share some
progress I’ve made in this area.
I’ll like to make a few points clear before:
VC6 vs. VC8 vs. MinGW have no room in this discussion. I took the
MinGW path since was the only one that could be bootstrapped from
This is a work in progress. Even that I’m 110% busy with work,
interest on this seems it deserve be shared, no mater how “alpha” the
whole process is.
Don’t blame me if isn’t work or your Rails application don’t work
either. Isn’t complete!. Instead: grab the code, hack it and send me
Make code talk for you. I’ve heard this too many times on other
projects, so please move from simple comments to share your ruby-fu.
Part of this project is bring a new build procedure to One-Click
Installer, if we succeed, everybody will enjoy the benefits.
For those who aren’t aware, I’m the new maintainer of OCI (One-Click
Ruby Installer for Windows). Curt give me the kingdom keys a few
months back and the latest release was completely build in my office
OCI, in its current state is a ‘Package of Ruby Tools and libraries’,
not a Installer. There are plans to change that.
So, now the code:
This is a pure-ruby solution that download and setup a mingw+msys
environment to get Ruby build.
It uses some rake recipes to download all the needed packages
At this time Ruby 1.8.6 p111 is targeted, but targeting Ruby 1.9 will
no have mayor issues.
Dependencies are not compiled, just downloaded for the time being.
Tested all the scenarios (pre-built and compile from source) and there
are issues with them which I reported previously.
To bootstrap and use this project, you need:
- Ruby 1.8.5 or greater
- Rake 0.7.3 or greater
- Tar  and Unzip  binary packages from GnuWin32
If someone can provide me a way to unpack 4MB zip, tgz and tar.bz2
files without external dependencies (just ruby) – you’re welcome.
The rake tasks available:
rake check # Run tests for the interpreter in the sandbox.
rake clean # Remove any temporary products.
rake clobber # Remove any generated file.
rake compile # Compile the interpreter.
rake configure # Run the configure process for the interpreter.
rake download # Download all components.
rake extract # Extract all downloaded components.
rake install # Install the interpreter in the sandbox.
rake prepare # Prepare the freshly extracted components.
clean will remove the sandbox and clobber will remove all the
The step sequence is:
download, extract, prepare, configure, compile, install, check
you will find the installed ruby in sandbox/ruby_mingw
You need to install before check, so the check process use the sandbox
interpreter instead of the one you’re using to build it.
check will fail in the readline tests, since I cannot get them working
I suggest to those who are interested, help me get this working.
I’m using Bazaar (bzr) as distributed version control software:
bzr branch http://code.mmediasys.com/installer3/dev my-local-branch
 This ships inside libarchive-2.4.0 named as ‘bsdtar.exe’
A common mistake that people make when trying to design
something completely foolproof is to underestimate
the ingenuity of complete fools.