Distribute Ruby GUI App (Shoes)

Hi there!

I am creating a ruby gui app with shoes (or green_shoes), but my problem
is that I can’t find a good way to distribute it to my friends. The App
has some dependencies, like activerecord and everything the shoes
framework/toolkit needs, and this is a problem for me.

The absolutly easiest solution i found was the shoes packager which
should do exact what I want: build a single standalone executable for
the 3 mayor OS. But (i don’t know why), the executable created with this
packager depends on an old version of rubygems, so it can’t install gems
like active_record (which needs at least rubygems 1.3.6) on the target
machine.

The other option is to use the green_shoes gem, which works similar, but
there is no packager i can use, so there would just be the “usual”
options to package the app. I spent the last days googling this problem,
but found NO viable solution for this.

  • rubyscript2exe: since i need the current ruby 1.9.2, it’s no option
    for me

  • ocra: i develop on a linux machine (ubuntu) and want to distribute my
    app to all the 3 mayor OS. ocra is windows only, so it is no working
    solution for me.

  • crate: seems to be dead (and far too complex for me, sorry)

  • exerb: my japanese skills are very low, i just recognized that it
    depends on ruby 1.8.7 and wasn’t updated for a while.

  • jruby and its possibilities are nice, but i want to use MRI for some
    reasons, especially green_shoes which depends on gtk2.

So I ask you, what is the ruby way to solve my Problem?

TL;DR: develop (green_)shoes app on ubuntu, want to build executable for
linux/windows/osx.

This is the unfortunate current situation. Red shoes is the only one
with a
packager, and I don’t know of plans to make one for green. There’s no
great
other solution to this, you’ve enumerated basically all the options.

Someday, I want to extract the red shoes packager for everyone, but
there’s
a lot of work to do before that’s possible.

hi Max -

a good place to post this question would be the Shoes mailing list -
there’s a great community with very good advice on all things Shoes…

from here - http://librelist.com/browser/shoes/ - just click on the
‘home’ link at the top of the page, and sign yourself up (by following
the instructions under ‘Anyone Can Subscribe to a List’)

as far as your question, and as far as i know - green shoes does not
package like red shoes (regular old shoes,) but the Shoes mailing list
is really the best place to ask…

shoes on!

  • j

@jake: I decided to post here because I also look for a general solution
to package scripts. When I work with green_shoes, it is just a usual
script with this gem, so every possible solution for ruby-scripts could
be interesting for me, this has nothing to do with the gui itself.

Steve K. wrote in post #1023620:

This is the unfortunate current situation. Red shoes is the only one
with a
packager, and I don’t know of plans to make one for green. There’s no
great
other solution to this, you’ve enumerated basically all the options.

Someday, I want to extract the red shoes packager for everyone, but
there’s
a lot of work to do before that’s possible.

Ah hey Steve! The only Problem with the red shoes packager seems to be
that an old version of rubygems is used. I tried things like “shoes -p
update --system”, but nothing worked finally. Don’t know how rubygems is
embedded in shoes, but is it possible for you to put a current version
in? :slight_smile:

I really want to use shoes, because its very easy to use, extremly fast
to develop gui’s with and now stable on windows7 (which was a problem
for me some time ago). Also building on ubuntu works now perfectly.

If ashbb also reads this: green_shoes needs no packager since its just a
gem. but in this case a general ruby solution is needed. i simply cannot
believe that there is NO solution to build a executable for
win/linux/osx in the ruby world!

Anyone ideas? Everything useful will be tested :slight_smile:

  • M

Don’t know how rubygems is
embedded in shoes, but is it possible for you to put a current version
in? :slight_smile:

We’re gearing up to release a 3.1 version of Shoes within the next two
weeks or so, roughly. It’ll have Ruby 1.9.2 and rubygems 1.3.7 as its
base. This works today on Mac and Linux, cremes is working hard on
getting Windows going.

Hi Maximilian,

I really want to use shoes, because its very easy to use, extremly
fast to develop gui’s with and now stable on windows7 (which was
a problem for me some time ago). Also building on ubuntu works
now perfectly.
So glad to hear that. Thank you for creating Shoes app! :slight_smile:

Okay now, to understand your problem clearly, I have a question.

  • Is it possible to install Ruby itself before your user executes your
    app?

If it’s possible, the problem would become much easier.
You can write your app as a gem and then your users will do just one
command
like this: gem install your_app_gem

Red Shoes includes it’s own ruby interpreter. So, users don’t have to
install Ruby. But even if they’ve already install ruby interpreter, Red
Shoes can’t use that.

Which way are you looking for? Separate Ruby interpreter from your app
or
include Ruby interpreter into your app?

ashbb

Steve K. wrote in post #1023725:

Don’t know how rubygems is
embedded in shoes, but is it possible for you to put a current version
in? :slight_smile:

We’re gearing up to release a 3.1 version of Shoes within the next two
weeks or so, roughly. It’ll have Ruby 1.9.2 and rubygems 1.3.7 as its
base. This works today on Mac and Linux, cremes is working hard on
getting Windows going.

Very nice, can’t wait for it!

But… why rubygems 1.3.7? The current version is 1.8.X as far as i
know? something incompatible?

On Mon, Sep 26, 2011 at 1:32 PM, Maximilian S.
[email protected] wrote:

So the best solution would be an included rubyinterpreter. But if this
is not possible, a 2step-installation (interpreter first, my_app after)
is better than nothing.

Repackage the Ruby Installer to include whatever you want/need to
deploy. Compare: Rails Installer.


Phillip G.

gplus.to/phgaw | twitter.com/phgaw

A method of solution is perfect if we can forsee from the start,
and even prove, that following that method we shall attain our aim.
– Leibniz

But… why rubygems 1.3.7? The current version is 1.8.X as far as i
know? something incompatible?

It’s the version that’s distributed with 1.9.2. It’s also the version
that happened before this whole warnings debacle, amongst other
things. I’ll consider bumping up the gem version in a future release,
but as this’ll be the first release with 1.9.2 in it, I want to keep
things as stable as possible, you know?

Ideally, we’ll just provide another release based on 1.9.3 shortly
after it’s been released.

Satoshi A. wrote in post #1023777:

Hi Maximilian,

I really want to use shoes, because its very easy to use, extremly
fast to develop gui’s with and now stable on windows7 (which was
a problem for me some time ago). Also building on ubuntu works
now perfectly.
So glad to hear that. Thank you for creating Shoes app! :slight_smile:

Okay now, to understand your problem clearly, I have a question.

  • Is it possible to install Ruby itself before your user executes your
    app?

If it’s possible, the problem would become much easier.
You can write your app as a gem and then your users will do just one
command
like this: gem install your_app_gem

Red Shoes includes it’s own ruby interpreter. So, users don’t have to
install Ruby. But even if they’ve already install ruby interpreter, Red
Shoes can’t use that.

Which way are you looking for? Separate Ruby interpreter from your app
or
include Ruby interpreter into your app?

ashbb

Hey ashbb!
I’d prefer that my windows-friends just have one executable, without any
work needed, including a simple “gem install …”. Windows guys, y know?
:slight_smile:

So the best solution would be an included rubyinterpreter. But if this
is not possible, a 2step-installation (interpreter first, my_app after)
is better than nothing.