From: Kyle Schmitt Date: 2009-03-04T01:02:39+09:00 Subject: Re: Compiling a Ruby app Err, not to attempt to de-rail a good open vs closed argument, but lets look at what the guy said, "Im not concerned about reverse engineering or cracks being made for my software. All I want is to be able to distribute it the traditional way like most commercial software is" It sounds to me like the main thing he wants to make a self contained installer that bundles up everything needed for the app to run, so it's transparent to the user whether it's ruby, C#, python or Java. That's rather admirable, especially considering that even some Microsoft downloads have dependencies that aren't auto-installed. What are the ways do do that? From hardest to easiest: A) Have the installer check for a compatible ruby then install if necessary (I used to make installers for work, this method may really suck unless someone has already made a template, or the installer software already supports it) B) Install just enough of a ruby distro local to the applications directory (lots of legwork for you, but maybe worth it) C) Compile the application with JRuby, install the requisite JRuby jars (there's only one or two, right?), and have the installer install Java if necessary (relatively easy, since there are lots of templates and installers that already support installing Java, if necessary) D) Compile the application using ruby2c or ruby2cext or something similar, and distribute the program with a static ruby.exe + one huge honkin .so that it loads. E) Magically compile the application to a native windows binary..... I'd say A is in many ways best, since the user then has a full ruby stack ever-after, but C looks really _really_ inviting too. --Kyle