Scroll to navigation



gem2deb - converts Rubygems' .gem file into Debian package


gem2deb [OPTIONS] GEMNAME (to download the gem with gem fetch)

gem2deb [OPTIONS] GEMFILE (to use a local .gem file)


gem2deb converts the gem into a Debian source package, and then will attempt to build it. The process is made of several steps.

First, gem2deb converts the gem file to a tar.gz archive containing a metadata.yml file with the Gem specification. This is equivalent to what gem2tgz does.

Then, gem2deb unpacks the tar.gz archive and prepares a Debian source package, guess many of the defaults from the files included in the archive, or the Gem specification. This is equivalent to what dh-make-ruby does. gem2deb cannot determine all parameters for obvious reasons. It is recommended to search for the "FIXME" string in the debian/ directory. The generated Debian source package uses dh_ruby to build the package.

Finally, gem2deb tries to build the source and binary packages using dpkg-buildpackage.


-t, --only-tarball
Stop after creating the tar.gz archive.
-s, --only-source-dir
Stop after preparing the Debian source package directory (do not attempt to build the package).
-S, --only-debian-source
Only build a Debian source package (do not build binary packages).
-p PACKAGE, --package PACKAGE
Specify package name (default: ruby-*). Passed to dh-make-ruby. See dh-make-ruby(1).
--ruby-versions VERSIONS
Ruby versions to build the package for (default: all). Passed to dh-make-ruby. See dh-make-ruby(1).
Prevents dh-make-ruby to check wnpp reports to get the number of a possible ITP (intend to package) bug report. By default, dh-make-ruby does check these reports, which requires an Internet access.
-o, --offline
Prevents dh-make-ruby from accessing the internet at all.
-h, --help
Displays gem2deb usage information.
-v, --version
Displays gem2deb version information.


A gem named mygem-0.1.0.gem is converted in a tarball with (approximately) the following steps:

  mkdir mygem-0.1.0
  cd mygem-0.1.0
  tar xfm /absolute/path/to/mygem-0.1.0.gem
  tar xzfm data.tar.gz
  zcat metadata.gz > metadata.yml
  rm -f data.tar.gz metadata.gz
  cd ..
  tar czf mygem-0.1.0.tar.gz mygem-0.1.0
  rm -rf mygem-0.1.0

The generated tarball has the following properties:

It contains all the files the gem contains.
It contains the gem metadata in a file named ``metadata.yml`` inside the mygem-0.1.0 directory.




Copyright (c) 2011, Lucas Nussbaum <>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <>.