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