Skip to content
ᴀɴᴛᴏɴ ɴᴏᴠᴏᴊɪʟᴏᴠ edited this page Jan 15, 2024 · 7 revisions

Where did you get all those compiled versions of Ruby?

We build all of them by ourselves. We use rbbuild utility with mass-builder script on freshly installed systems. We use virtual machines with CentOS 7, Alma Linux 8 and 9 as a build nodes.

I don't think you're a trustworthy source of precompiled binaries. Why should I install anything from you?

It's up to you. We use these binaries extensively in our infrastructure and have made the repository publicly available as a contribution to the open source community.

However, if you want, you can build your own binaries and create your very own repository. It's very easy. Use rbbuild to build the binaries, then pack them into tar.zst and use the rbinstall-gen utility to build the repository index.

We want to install Ruby on a large number of machines (hundreds or thousands) on a daily basis. How can we reduce the amount of traffic from our infrastructure to your storage?

We provide rbinstall-clone tool which can help you to clone any existing repository (e.g. ours) and use it as source of binaries. You can change the source of the binaries in the rbinstall configuration file (/etc/rbinstall.knf).

I've installed some version a few months ago and now it has different checksum for tar.zst file. Why did it change?

All versions of base Ruby include a statically linked version of the OpenSSL library. This means that if we want to update OpenSSL to the latest versions (due to bugs or CVEs), we have to recompile the binaries and update the tar.zst file with it.

There are no some versions. Did you forget to build them?

We do not make any changes to the code base while building binaries. If it cannot be built on the system with the latest versions of dependencies, we simply skip it. We can't and won't make changes to the code base to try to make it work.

I am using Fedora/Ubuntu/Debian... Can you provide binaries for my system?

Sorry, no. We are limited by the operating systems used in our infrastructure. However, you can create your own repository of binaries for your distros.

I'm trying to install an old version of Ruby (<3.0) and I get an error when installing the bundler or it doesn't work properly. How can I fix it?

By default, rbinstall installs two versions of the bundler gem - the latest 1.x version and the latest available version. The new version of bundler doesn't support old versions of Ruby, so if you want to use one, you have to define a compatible version in the configuration file, or install it manually.

For example, if you need to use Ruby 2.7, you can automatically install 1.x and 2.4.x by setting gems:install property in /etc/rbinstall.knf to this:

# List of gems to install on each Ruby version
  install: bundler=1 bundler=2.4

I'm trying to install an old version of Ruby (<3.0) and I get RubyGems gem update error. How can I fix it?

By default, rbinstall tries to install the latest compatible version of the RubyGems gem for the version you are currently installing. However, if you want to update the RubyGems gem to a custom version, you can specify it in the gems:rubygems-version property in the /etc/rbinstall.knf configuration file.