This is a question for those of you who use Ruby to develop GUI-based applications, using wxWidgets, or Qt, or GTK, etc. and the appropriate Ruby bindings. My question is, how do you actually package and distribute your application to end users, and what do you distribute vs. require the user to already install? For example, do you just distribute your .rb files, and then tell the user: "To run this app, you have to have Ruby installed on your machine, PLUS wxWidgets, PLUS wxRuby."? Or is there a way to package and distribute the wxWidgets (or Qt or GTK or Fox) library and the Ruby bindings along with your app's Ruby sources so that your only end user system requirement is Ruby? And if you do redistribute the GUI library and the Ruby bindings, do you have to install them into the System somehow, or modify paths and/or environment variables to make sure they're "installed" properly? Or can you have everything in a single folder along side your app's sources, so everything is nicely self-contained without the user needing to modify their system? So far the only method of creating GUI apps with Ruby that I've played around with at all is JRuby, because as I understand it I can make it so that the only end user requirement is that they have Java installed, by distributing jruby-complete.jar along with my app's .rb source files, plus maybe a .bat or shell script file to launch the app. And on the Mac you could probably package that all up as a .app bundle, so the user can just double click it and go, without having to install anything else (since Macs come with Java installed).