Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tool for emerging gems as if they had up-to-date downstream ebuilds (Gentoo)
Ruby Shell
Pull request Compare This branch is 1 commit ahead of Pistos:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


## emerge-gem

Goal: Transparently install gems into Portage.
It should be as easy as "emerge-gem gemname".

### Dependencies


* Portage
* RubyGems


* emerge eix
* gem install cucumber   # for emerge-gem tests
* gem install bacon      # for emerge-gem tests

### Download

git clone git://

### Installation

ruby install.rb

### Setup

In /etc/make.conf set (or append to) PORTDIR_OVERLAY:


### Usage

  emerge-gem <gemname> -- <emerge options>

emerge-gem will also determine gem dependencies and emerge them, too.

  emerge-gem ramaze -- -atv

You can scan your system for gems installed outside of Portage with:


### Notes

USE emerge-gem AT YOUR OWN RISK! It is still very much alpha software as of

It is recommended to emerge eix, which makes package searching extremely fast.
emerge-gem will use eix, if it is found, to scan for Portage gem installations,
check for possible problems, and prompt you to confirm recommended actions.
Without eix, you'll need to take care of Portage-Rubygems inconsistencies
yourself.  Note that you'll need to run update-eix to keep eix up-to-date after
you run emerge-gem.  If you don't, eix won't know about the gems you install
into the local overlay (/usr/local/portage), and will continue to report them
as "installed with RubyGems outside of Portage".

emerge-gem works by using the Rubygems system/library to find gem sources and
dependencies, and to automatically create wrapper ebuilds for them.  It then
issues an emerge command.  By default, it uses the local overlay.  Use --help
for CLI switches you can use to specify directories.

### Without eix

If you have been using the gem command to install gems outside of Portage's
control, you are advised to make use of "gem list -l" and "gem uninstall" to
check for and remove previously installed gems.  This lets Portage operate with
a clean slate.  After you emerge-gem, you can use "gem list -l gemname" to
verify that emerge-gem installed the gem correctly.

You should also note that if you have installed a gem via Portage in the past,
and later upgraded it with Rubygems, emerge will complain about file collisions
if you have collision-protect enabled in your /etc/make.conf.  To deal with this,
uninstall with Rubygems all versions of the gem except the one matching the
Portage version.
Something went wrong with that request. Please try again.