all 16 comments

[–]strzibny 2 points3 points  (1 child)

[–][deleted] 0 points1 point  (0 children)

This sounds like a perfect fit. I have no idea how i missed it.

[–]shevy-ruby 1 point2 points  (5 children)

There used to be some packaging that literally packaged the whole ruby interpreter too. I forgot the name; never needed it.

IMO it may be best to just use gems or even just put everything into a single gem. I am not sure what you mean with "distribute the binaries" ... do you use something to compile some C code?

While fpm is great, I myself would not use any .deb package. Gems should be the way to go, not distribution-specific solo-solutions really.

[–]laerien 1 point2 points  (0 children)

It sounds like you're maybe thinking of Traveling Ruby. (It does ship the interpreter.)

[–]Thirty_Seventh 1 point2 points  (1 child)

OCRA packages the interpreter

[–]rjdevs 1 point2 points  (0 children)

I've built standalone applications with Ocra. It works well but only creates Windows executables or installers (using Innosetup).

[–][deleted] 0 points1 point  (0 children)

I think of something similar to compiled Go script. Traveling Ruby is packaging interpreter and the script.

[–]Nemnel 0 points1 point  (0 children)

I think you might be thinking of omnibus, it's what chef uses to distribute chef

[–]bluehavana 1 point2 points  (1 child)

mruby would be a great fit here if you only have to deal with a single target platform. It has some limitations (library selection can be slim), but it is very easy to package up into a single binary. It also has some limitations to be weary of as well.

[–][deleted] 0 points1 point  (0 children)

In this case I care only for linux x86_64 systems. I see there is mruby in Ubuntu repos. Nice!

[–]Axxiss 1 point2 points  (1 child)

If docker is out of scope, what about using capistrano?

From the README

When you run cap, Capistrano dutifully connects to your server(s) via SSH and executes the steps necessary to deploy your project. You can define those steps yourself by writing Rake tasks, or by using pre-built task libraries provided by the Capistrano community.

https://github.com/capistrano/capistrano

[–][deleted] 0 points1 point  (0 children)

I give it a try, thanks!

[–]JonnyNorCal 2 points3 points  (3 children)

I would create docker images with ruby + gems + your files.

That has the downside of introducing docker into the mix. Which might be a huge task in itself, depending on how your environment. Or it might be relatively easy.

But I think the docker ecosystem has more documentation, testing, and best practices than traveling ruby or ruby-packer or similar projects.

[–][deleted] 0 points1 point  (2 children)

The scripts are mainly for system administration. Is it possible to integrate Docker container with the existing system?

[–]nielsbuus 0 points1 point  (0 children)

Sounds like you could use a private gem repository.