If you want non-programmers to run Ruby applications, you can consider the
following options. I have built many Ruby apps that I had End-Users install
without having to install Ruby directly or any other software dependencies.
Glimmer DSL for SWT enables packaging Ruby applications inside native
Installers (like Mac DMG/PKG/APP, Windows MSI/EXE, and Linux RPM/DEB) on
top of JRuby, enabling developers to give end-users (non-programmers) only
a single file to run to install everything needed, like JRuby (which can
run any Ruby code), its JVM dependencies, and the application being
installed:
glimmer-dsl-swt/docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md at master · AndyObtiva/glimmer-dsl-swt · GitHub
Glimmer DSL for LibUI, which runs on Ruby directly instead of JRuby, has a
section on Packaging Ruby applications that you might want to check out too
(it mentions packaging solutions for Windows and Mac):
GitHub - AndyObtiva/glimmer-dsl-libui: Glimmer DSL for LibUI - Prerequisite-Free Ruby Desktop Development Cross-Platform Native GUI Library - The Quickest Way From Zero To GUI - If You Liked Shoes, You'll Love Glimmer! - No need to pre-install any prerequisites. Just install the gem and have platform-independent GUI that just works on Mac, Windows, and Linux.
Here are examples of apps that were packaged with Glimmer DSL for SWT,
which were installed by end-users without a problem:
- GitHub - AndyObtiva/MathBowling: Bowling game that tests math skills.
- GitHub - AndyObtiva/glimmer-cs-gladiator: Gladiator (Glimmer Editor) - Glimmer Custom Shell
- GitHub - AndyObtiva/are-we-there-yet: Are We There Yet? Small Project Tracking Desktop App for Windows and Mac. Built with Glimmer (Ruby Desktop Development GUI Library)
- GitHub - AndyObtiva/dcr: Draw Color Repeat - A Young Child Programming Language for Drawing and Coloring with Repetition
- GitHub - AndyObtiva/glimmer_klondike_solitaire: Glimmer Klondike Solitaire - Glimmer External Sample
- GitHub - AndyObtiva/glimmer_metronome: Glimmer Metronome supports different beat counts, click sounds, and tempos, including tap-based tempo calculation.
- GitHub - AndyObtiva/glimmer_wordle: Glimmer Wordle - Play Wordle Endlessly with No Limit!
On Tue, May 28, 2024 at 10:18 AM Austin Ziegler via ruby-talk < > ruby-talk@ml.ruby-lang.org> wrote:
On Tue, May 28, 2024 at 8:21 AM Mark Zhang via ruby-talk < >> ruby-talk@ml.ruby-lang.org> wrote:
From the perspective of a developer, Homebrew is indeed very convenient.
However, when I want to distribute Ruby-made games or GUI programs, I find
it hard to imagine how to convince the other party to configure everything
step by step without making mistakes.
This makes me feel that Brew is not good enough. Perhaps for those who
just want to run Ruby, a dmg/pkg would be enough, just as Java and Python
are doing.
If you want to distribute games or GUI apps written in Ruby, bundle Ruby
with your app. Trusting that a user's Ruby installation is compatible with
your game or app is foolishly risky. There are things about how Ruby works
which makes that non-trivial (especially if the app is installed in
~/Applications instead of /Applications), but that's true of pretty much
anything with dylibs.
Python is a reasonable example of a language ecosystem that provides a
package build, but it provides **far more** than just the framework
(installed into /Library) and binaries (installed into /usr/local/bin), but
also (importantly) IDLE.app (a Tk program). Ruby does not have something
like IDLE, so it doesn't really need it.
Java is an entirely different example, as what most people need is the
JRE just to run the (very few remaining) Java Desktop programs (and some of
those offer two downloads: with and without).
Ruby doesn't **need** a .pkg installer. I suspect that if someone stepped
up and volunteered to build it and maintain it (and ensure that the
resulting packages are signed and all), there might be interest in it. Far
more likely, there would be interest that you hosted (like
https://rubyinstaller.org for Windows) and would link to it from
ruby-lang.org.
Simply complaining that Ruby doesn't have a pkg installer isn't useful,
and comparing what Ruby does for this in comparison to other languages or
runtimes doesn't help without understanding the contexts involved.
-a
Ryan Davis via ruby-talk <ruby-talk@ml.ruby-lang.org> 于2024年5月28日周二
05:42写道:
On May 27, 2024, at 01:24, Mark Zhang via ruby-talk < >>>> ruby-talk@ml.ruby-lang.org> wrote:
In contrast, installing Ruby requires a preliminary step of installing
Homebrew, as directed on ruby-lang.org
<Installing Ruby.
After Homebrew is set up, users must then add libraries and compile Ruby
from the source code, which can be a daunting task for many.
Where do you see this? I see that it points out that you already have
ruby, and suggests for a newer version to install homebrew and then running
`brew install ruby`. No dependencies, no building from source.
______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info --
Info | ruby-talk@ml.ruby-lang.org - ml.ruby-lang.org
______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info --
Info | ruby-talk@ml.ruby-lang.org - ml.ruby-lang.org
--
Austin Ziegler • halostatue@gmail.com • austin@halostatue.ca
http://www.halostatue.ca/ • x.com
______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info --
Info | ruby-talk@ml.ruby-lang.org - ml.ruby-lang.org
--
Andy Maleh
LinkedIn: Andy Maleh - Lexop | LinkedIn
<https://www.linkedin.com/in/andymaleh>
Blog: http://andymaleh.blogspot.com
GitHub: AndyObtiva (Andy Maleh) · GitHub
Twitter: @AndyObtiva <x.com;
______________________________________________
ruby-talk mailing list -- ruby-talk@ml.ruby-lang.org
To unsubscribe send an email to ruby-talk-leave@ml.ruby-lang.org
ruby-talk info --
Info | ruby-talk@ml.ruby-lang.org - ml.ruby-lang.org