I just wrote a small CLI program[0] (actually a wrapper for a collection of shell scripts, similar to git) and would like to package it for easy installation on Debian/Ubuntu, Red Hat/Fedora, Arch, macOS, and hopefully even Windows (via WSL?).<p>Is there a tool or service for making this easy? So far, I've found fpm[1]. I haven't dug into it enough to know whether it's the solution I'm looking for, but I also wanted to solicit the community for alternatives in case I'm missing something even better.<p>The dependencies are minimal (just Ruby stdlib). Here are options I've considered and opted against:<p>• rubygems: I'm not a huge fan of using a language's package manager for end-user software. What happens when the system upgrades its version of Ruby? Does the user have a ruby version manager like rvm or rbenv installed? and so on.<p>• docker: a couple weeks back, an article entitled "Run More Stuff in Docker" was trending here[2]. I like the idea, but the approach is a minor hobby unto itself and way too burdensome to ask of general-audience, potentially not-very-technical end-users.<p>My program is simple enough that I hope it could be used as an introduction to CLI concepts/UNIX/shell pipes for the uninitiated; someone should not have to be a developer to use it or understand how it works. Assuming a very limited familiarity with the command line, I want to offer install instructions that make no assumptions about the user's system and should always just work; e.g., `brew install cram` / `sudo dpkg -i cram.deb` / etc.<p>[0]: https://github.com/rlue/cram<p>[1]: https://github.com/jordansissel/fpm<p>[2]: https://jonathan.bergknoff.com/journal/run-more-stuff-in-docker/
Very timely question, considering 'jart's work has been at the top of HN in the last couple days[+]. Take a look at <a href="https://justine.lol/ape.html" rel="nofollow">https://justine.lol/ape.html</a> especially the portable Javascript interpreter. If you go that route you'd want to adapt it to Ruby. That'd be some nontrivial work, most likely, but it'd definitely be pretty neat.<p>[+] <a href="https://news.ycombinator.com/item?id=26273960" rel="nofollow">https://news.ycombinator.com/item?id=26273960</a>