setup.rb は主に ruby スクリプトと拡張モジュールを対象としたコマンド ラインベースのインストーラです。複数のパッケージ、拡張モジュールなどを 含むパッケージのインストールを自動化することができます。
setup.rb はパッケージが以下のようなディレクトリ構造になっていることを 前提にしています。
見ての通り lib ext bin share の四つのディレクトリが並んでいて、 トップに setup.rb です。lib などの中にはディレクトリが並んでいて、 さらにその中に *.rb や *.c をいれます。 種別としては、lib は ruby スクリプト、ext は拡張モジュール、 bin がコマンド、share がデータ(画像ファイルやリソースなど)です。package-top/ setup.rb lib/ [dirs...]/ PATHCONV ext/ [dirs...]/ PATHCONV bin/ [dirs...]/ PATHCONV share/ [dirs...]/ PATHCONV
種別のディレクトリにひとつある PATHCONV はそれぞれの インストール先やパッケージ分類を記述するために使います。 PATHCONV のフォーマットは、以下のようになっています。
空行や余計な空白はなるべく入れないでください。コメントはありません。 また要素間の空白もひとつだけです。 「ディレクトリ名」はそのとおり、lib/ などの下にならんでいるディレクトリ名。 「パッケージ名」はそのディクレトリが所属するパッケージ名。 「インストール先パス」は、標準パス (ライブラリなら例えば /usr/local/lib/ruby/site_ruby/1.5/) からの相対パスです。 例えば、require 'mylib/worker' のようにして使えるようにしたければ、 ここには「mylib」と書きます。そうでなく、require 'worker' のように したいなら「.」(ピリオドひとつ) と書きます。以下に実際の例を示します。ディレクトリ名 所属パッケージ名 インストール先パス ディレクトリ名 所属パッケージ名 インストール先パス :
これは TMail というライブラリの ext/PATHCONV で、'mails' 'cparse' 'strscan' の みっつのディレクトリを含んでいます。それぞれの「所属パッケージ」は tmail raccrt strscan で、インストール先は tmail racc strscan です。mails tmail tmail cparse raccrt racc strscanso strscan .
このシステムはなんだか複雑に思えます。それでも setup.rb を使うメリットは
何でしょうか。それは、「統一された設定のためのインターフェイスを提供できる」
という一点につきます。
setup.rb は、コマンドラインオプションを与えることで、lib や ext の
インストール先を変更できるようになっています。
また、パッケージごとに インストールするかしないかを選択することもできます。
特に、ひとつのアーカイブにたくさんのパッケージが入っている場合は、
全部まとめて設定を行えるのは非常に便利です。
また README などを簡潔にすることができ、慣れない(慣れてるかもしれないけど…)
英語で書く量を減らすことができます。
ユーザが setup.rb を使ってインストールする過程を説明します。 通常は次の三行で十分です。($ はプロンプト、# はスーパーユーザ)
config は設定の変更・調整で、setup が主にコンパイル、install が 実際のインストールです。$ ruby setup.rb config $ ruby setup.rb setup # ruby setup.rb install
以下、もう少し正確に説明します。setup.rb にはグローバルオプションと コマンド、そしてコマンド専用のオプションがあります。組みあわせとしては 以下のようになります。
cvs を知っている人は似たようなものだと思ってください。 まずグローバルオプションとしては次の三種類が使えます。ruby setup.rb グローバルオプション ruby setup.rb コマンド ruby setup.rb コマンド コマンドオプション
config
install
dryrun
コマンドに与えられたオプションはそのまま ruby に渡します。
他のコマンドにはオプションはありません。
GNU General Public License (GPL) version 2 です。 詳細はファイル GPL を見てください。また、setup.rb を使って インストールするプログラムが GPL である必要はありません。
Copyright (c) 2000,2001 Minero Aoki <aamine@dp.u-netsurf.ne.jp>