From Gentoo Wiki
Jump to: navigation, search
Gentoo Ruby Project
Description The Ruby project maintains packages for Ruby implementations, libraries and development tools. This project also maintains the RubyGems package, the de facto standard for packaging Ruby projects.
IRC Channel #gentoo-ruby
No lead election date set
(and inherited members)
Parent Project Gentoo Programming Language Support Project
Project listing

Information for users

Main implementations

Right now, we include the following Ruby implementations in Gentoo.

  • ruby21 - Ruby MRI 2.1
  • ruby22 - Ruby MRI 2.2 (testing)
  • ruby23 - Ruby MRI 2.3 (testing)
  • ruby24 - Ruby MRI 2.4 (testing)

Experimental implementations

The following implementations need an active maintainer. They are currently available in the tree, but are unsupported. Ping us, if you want to help out!

  • jruby - JRuby (based on the Java Virtual Machine)
  • rbx - Rubinius

This graph shows the current distribution of Ruby implementations in Gentoo.

Activating specific implementations

You can activate specific ruby implementations by adding RUBY_TARGETS="$implementation" to /etc/portage/make.conf. Please note that you might overwrite the implementations set by base profile.

FILE /etc/portage/make.conf
# Installs packages for Ruby 2.1, and Ruby 2.2
RUBY_TARGETS="ruby21 ruby22"

You can install multiple Ruby implementations in parallel. The RUBY_TARGETS variable picks the implementations from USE_RUBY (which is set in the ebuild) and installs these.

The base profile currently activates Ruby MRI 2.1. Our recommendation is to run Ruby packages with Ruby MRI 2.1 per default.

You can eselect it via:

root # eselect ruby set ruby21

Using a testing implementation on a stable system

Starting with Ruby 2.2 we are now using the stable mask mechanism to keep Ruby 2.2 on testing until it is ready to be unmasked. If you want to use ruby22 on an otherwise stable system, you need to apply the following changes:

FILE /etc/portage/profile/use.stable.maskUnmasking flags for Ruby 2.2

For further information please see the instructions for Python.

Information for developers

To ease maintenance of Ruby-based packages we currently provide several eclasses:

Further resources:

Old and probably outdated documents


We are currently looking for users interested in helping the project with these jobs:
Ruby core package maintainerRuby core package maintainer to help out with the core ruby packages (dev-lang/ruby and dev-ruby/rubygems). Revision bumping, handling security bugs, patching packages to play nice with Gentoo, following upstream to handle changes and updates in a timely manner.Experience with ruby on Linux, ideally Gentoo. Knowledge of C and ruby. Experience with patching
Ruby package maintainerGeneral ruby package maintainer to help out managing packages in the herd. Revision bumping, bug filing/fixing, updating ebuilds per eclass or syntax changes, etc. This involves a mix of gem and source based ebuilds.Experience with ruby on Linux, ideally Gentoo. Knowledge of the gem repository system and its supporting software and experience with building ruby software using setup.rb and its many