setup.rb ユーザマニュアル

簡単な解説

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 をいれます。
種別としては、lib は ruby スクリプト、ext は拡張モジュール、 bin がコマンド、share がデータ(画像ファイルやリソースなど)です。

種別のディレクトリにひとつある PATHCONV は、 それぞれのインストール先やパッケージ分類を記述します。 PATHCONV のフォーマットは、以下のようになっています。


    ディレクトリ名 所属パッケージ名 インストール先パス
    ディレクトリ名 所属パッケージ名 インストール先パス
                        :

この例では先頭に空白がありますが、実際には空白があってはならず、 一桁目から、空行もなしで記述します。また、要素間の空白もひとつだけです。
「ディレクトリ名」はそのとおり、lib/ などの下にならんでいるディレクトリ名。 「パッケージ名」はそのディクレトリが所属するパッケージ名。 「インストール先パス」は、標準パス (ライブラリなら例えば /usr/local/lib/ruby/site_ruby/1.5/) からの相対パスです。 例えば、require 'mylib/worker' のようにして使えるようにしたければ、 ここには 'mylib' と書きます(引用符は必要ありません。) そうでなく、require 'worker' のようにしたいなら '.' と書きます。 以下に実際の例を示します。

mails tmail tmail
cparse raccrt racc
strscan strscan .

最初と最後の空行は実際にはあってはいけません。 これは TMail というライブラリの ext/PATHCONV で、'mails' 'cparse' 'strscan' の みっつのディレクトリを含んでいます。それぞれの「所属パッケージ」は tmail、raccrt、strscan で、インストール先は tmail racc strscan です。 たいていはディレクトリ名とパッケージ名は同じでしょうが、この場合 パッケージ「raccrt」 は cparse.so の他に ruby スクリプトを含んでいるので 名前を変更しています。

最後に、lib/amstd/ に同梱されている amstd/*.rb ライブラリをコピーしてください。 setup.rb はここに amstd があることを想定してつくられています。 これがないと、インストール先に amstd が必要になってしまいます。 ちなみに、PATHCONV に amstd を書いておけば、自分のものといっしょに amstd もインストールできます。(もちろん、そんなことはしなくても構いません。)

setup.rb を使うメリット

このシステムはなんだか複雑に思えます。それでも setup.rb を使うメリットは 何でしょうか。それは、「統一された設定のためのインターフェイスを提供できる」 という一点につきます。
setup.rb は、コマンドラインオプションを与えることで、lib や ext の インストール先を変更できるようになっています。 また、パッケージごとに インストールするかしないかを選択することもできます。 特に、ひとつのアーカイブにたくさんのパッケージが入っている場合は、 全部まとめて設定を行えるのは非常に便利です。 また、readme などを簡潔にすることができ、慣れない(慣れてるかもしれないけど…) 英語で書く量を減らすことができます。

仕様

まず、ユーザが setup.rb を使ってインストールする過程を説明します。
通常は次の 3 つで十分です。($ はプロンプト、# はスーパーユーザ)


    $ ruby setup.rb config
    $ ruby setup.rb setup
    # ruby setup.rb install

config はその通りコンフィグで、インストール先などを設定します。 このとき使えるコンフィグオプションを以下に示します。
--bin-dir
実行可能ファイルがインストールされるパス
--rb-dir
Ruby スクリプトがインストールされるパス
--so-dir
拡張モジュールがインストールされるパス
--data-dir
データファイルがインストールされるパス
--ruby-path
ruby のパス
--with
インストールするパッケージ/ディレクトリ
--without
インストールしないパッケージ/ディレクトリ すべて --opt=value の形で指定します。途中に空白があってはいけません。 また、--with と --without には ',' で区切って複数の値をあたえられます。 パッケージの他に ext/myext のように直接ディレクトリを指定できます。
また、config 以外でもこれらオプションは指定できますが、 その場合はそのコマンド実行中だけに効果が限定されます。

setup では主に拡張モジュールのコンパイルを行います。

install ではパッケージをインストールします。 --with が指定された場合はそれを、--without が指定された場合は 全パッケージか --with パッケージから --without を"引いた" 結果を、 インストールします。

最後に他のコマンドとオプションを紹介しておきます。

show
現在のコンフィグを表示する
clean
拡張モジュールに対し make clean を実行
dryrun
実際にインストールせずにライブラリを使ってみる。 setup.rb の引数と ruby の引数は "--" で区切る。 おそらく、アプリケーションには通用しないだろう
--help
setup.rb の使いかたなどを表示

ライセンス

GNU General Public License (GPL) version 2 です。 詳細はファイル GPL を見てください。
また、setup.rb を使ってインストールするプログラムが GPL である 必要はありません。


Copyright (c) 2000 Minero Aoki <aamine@dp.u-netsurf.ne.jp>