rubyworks edited this page Sep 13, 2010 · 10 revisions

Setup.rb User Guide


The original setup.rb was written Minero Aoki. This script served as the primary means by which Ruby programs were installed until RubyGems became popular. setup.rb laid much of the groundwork for the conventional layout of Ruby projects.

Ruby Setup is a fork of this work as of Aoki’s last release, version 3.4.1.

While there are important and significant differences between the original 3.4.1 version and the current 5.x series, the overall functionality remains the same. The important distinctions are:

  • Config data is stored in SetupConfig file instead of .config
  • The config file uses YAML serialization format.
  • The config file can be dynamic via Erb, instead of shell like variables, eg. <%= var %> instead of $var.
  • The directory convention ‘conf’ has been renamed to ‘etc’, to be more aligned with FHS.
  • Multi-package project layouts are no longer supported (YAGNI).
  • Metaconfig API is no longer supported; support is now handled via singleton extension.
  • Hook API is no longer supported ; support is now handled via singleton extension.
  • Can be run as a stand-alone executable, installed via ‘gem install setup’.
  • But can still be used old-school style, distributed with your project.
  • It no longer supports versions of Ruby older than v1.6.3.

Table of Contents

Please feel free to improve this documentation! It belongs to the Ruby Community.

Backward Compatibility

I do not assure any backward compatibility for the setup.rb. If you like old behavior, bundle old version.


GNU LGPL, Lesser General Public License version 2.1. For details, see file “COPYING”.

NOTE: You CAN distribute your program under the any licenses you like. LGPL does not force you to make your programs LGPL while the installer is LGPL’ed one.

You can freely copy/edit and/or distribute these documents. I do not claim any rights on them. Removing my copyright is also OK.