[Rubygems-developers] RE: temp

Curt Hibbs curt at curthibbs.us
Mon Jul 26 10:05:48 EDT 2004

Mehr, Assaph wrote:
> Am now working on making app-gems installable as a regular
> application, i.e.
> with start-menu shortcuts, file-type associations etc. This is somewhat
> windows specific, but I think you can do similar stuff on linux.
> One of the
> nice things about it is that you can get many things easily from what's
> already included with ruby-gems. E.g. an update-product link.
> I plan to tell my users to install ruby (hopefully 1.8.2 will have gems
> built-in). Possibly install extensions that aren't gems right now (e.g.
> wxRuby) and then install my app. Thereafter they do not need to
> monkey with
> the command line to launch the app, the help file is more visible, i can
> bind file-types to my app, etc.

This is a fantastic idea, and is much-needed to enable the mass distribution
of ruby applications. Also, the 1.8.2 Ruby Installer for Windows is going to
include RubyGems and a GUI interface to RubyGems, but Ruby 1.8.2 itself will
not include RubyGems.

I think that a set of platform-specific installers for ruby applications
could be a breakthrough that makes it viable to create and ship ruby
applications -- but only if the target audience for these ruby applications
can include people who are *not* developers (like my grandma).

I think that for a Ruby application to be viable for mass distribution, it
must contain everything it needs to run: the application, the proper version
of ruby, all needed libraries. This is what the windows version of FreeRIDE

Its really the only way to guarantee a known running environment for the
application. If applications are installed as part of a shared Ruby runtime,
it may or may not work. There is just no way to know. If it doesn't work,
its the application that gets blamed, and it may be nearly impossible for
the developer to troubleshoot the problem. This issue disappears completely
when the application runs in its own private ruby environment.

I would suggest creating an app-install-builder that gathers all of the
needed files (app files, ruby runtime files, library files, etc.), and then
builds a custom directory tree containing all of these files that *is* the
runnable application (look at an installed version FreeRIDE to see how
FreeRIDE does it). Then have the app-install-builder generate an NSIS script
for creating the actual installer.

The developer can then test his app directly from this newly created
directory tree. When he is satisfied that everything works, he can run NSIS
to create the actual installer.

I really think that this would be *way* more useful than extending RubyGems
applications support.


More information about the Rubygems-developers mailing list