setup.rb を使ったプログラムのインストール
=========================================

  この文書ではエンドユーザが setup.rb を使って
  パッケージをインストールする方法を説明します。

最も単純な方法
--------------

  通常は次のように打つだけで十分です。
  （UNIX 系 OS ではおそらくスーパーユーザ権限が必要です）

    ($ su)
     # ruby setup.rb

  自分のホームディレクトリ以下にインストールしたいときは
  次のようにしてください。

    $ ruby setup.rb all --prefix=$HOME

インストールの詳細
------------------

  以下、もう少し詳細に説明します。

  setup.rb ではインストールのプロセスが「config」「setup」「install」
  の三つの段階に分かれています。setup.rb を引数なしで実行すると
  config setup install を一気に実行してしまうのですが、次のように
  すると三つに分けて実行できます。

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

  そして各段階にオプションを付けるとインストール先などを細かく制御
  することができます。例えば config に「--bin-dir=$HOME/bin」オプ
  ションを付けるとコマンドが $HOME/bin にインストールされます。

  詳しくは「タスクオプション」の節を見てください。

グローバルオプション
--------------------

  グローバルオプションとは、タスク (config や setup) に関らず
  指定できるオプションのことです。必ずタスクの前に指定してください。

    -q,--quiet

        メッセージ出力を最小限にする

    --verbose

        実行中の状況を詳細に表示する (デフォルトはオン)

    -h,--help

        setup.rb の使いかたなどを表示

    -v,--version

        setup.rb のバージョンを表示

    --copyright

        setup.rb の著作権を表示

タスク
------

  タスクは以下の七つです。

    all

        config, setup, install を一気に行う。
        タスクオプションは config と共通。

    config

        設定をチェックしたうえで保存する

    show

        現在の設定を表示する

    setup

        コンパイルなど、ファイル内容の変更を行うもの

    install

        インストールを行う。

    test

        テストを実行する。

    clean

        setup で作成したものを消す

    distclean

        setup で作成したものを消す (より強力)

config/all のタスクオプション
-----------------------------

  config タスクで使えるオプションを説明します。

  値を取るオプションはすべて --opt=value の形で指定します。
  「=」のまわりに空白を入れてはいけません。各オプションの
  デフォルト値は ruby setup.rb --help で見られます。

  すべてのオプションで、値に別の変数を使うことができます。
  例えば Ruby ライブラリを site_ruby にインストール
  したければ、--rbdir=$siterubyver と指定できます。
  UNIX シェルでは「$」をエスケープして --rbdir=\$siterubyver
  としてください。

    --installdirs=(std|site|home)

        よく使われるインストール先ディレクトリを
        まとめてセットするオプション。

        std: $libruby 以下にインストールする。

        site: $siteruby 以下にインストールする。

        home: ホームディレクトリ下にインストールする。

    --prefix=PATH

        $bindir, $libdir などの共通部分

    --bindir=PATH

        実行可能ファイル（コマンド）をインストールするディレクトリ。

    --rbdir=PATH

        Ruby ライブラリをインストールするディレクトリ。

    --sodir=PATH

        Ruby の拡張モジュールをインストールするディレクトリ。

    --datadir=PATH

        その他のデータファイルをインストールするディレクトリ。

    --sysconfdir=PATH

        設定ファイルをインストールするディレクトリ。

    --mandir=PATH

        man ページをインストールするディレクトリ。

    --libruby=PATH

        Ruby ライブラリをインストールするディレクトリ

    --librubyver=PATH

        Ruby の標準添付ライブラリがインストールされるディレクトリ

    --librubyverarch=PATH

        Ruby の標準添付拡張ライブラリがインストールされるディレクトリ

    --siteruby=PATH

        Ruby のバージョンに依存しない、非標準の Ruby ライブラリが
        インストールされるディレクトリ (site_ruby)

    --siterubyver=PATH

        Ruby のバージョンに依存する、非標準の Ruby ライブラリが
        インストールされるディレクトリ (バージョンつき site_ruby)。

    --siterubyverarch=PATH

        非標準の Ruby 拡張ライブラリがインストールされるディレクトリ
        (バージョン・アーキテクチャ名つき site_ruby)。

    --rubypath=PATH

        shebang 行 (#!) にセットする Ruby インタプリタのパス。
        つまり、インストールしたプログラムを実行するときに
        この ruby が使われます。

    --shebang=(all|ruby|never)

        shebang 行 (#!) の書き換えモードです。

        all: すべてのファイルの shenbang 行を書き換えもしくは追加する。

        ruby: ruby を起動していると思われる shebang 行だけを書き換える。

        never: いっさい shebang 行を書き換えない。

    --rubyprog=PATH

        インストール時に使う ruby プログラムへのパス。

    --makeprog=NAME

        拡張ライブラリのコンパイルに使用する make プログラム。

    --without-ext

        拡張モジュールのコンパイル・インストールを無条件に
        スキップする。ただし当然ながら、インストールされる
        プログラム自体が拡張モジュールなしで動くようになって
        いなければ意味がありません。

    --rbconfig=PATH

        デフォルト値の設定に使う rbconfig.rb

  またマルチパッケージアーカイブではこれに加えて以下のオプションも使えます。

    --with=NAME,NAME,NAME...

        インストールするパッケージ

    --without=NAME,NAME,NAME...

        インストールしないパッケージ

  さらに、「--」（マイナス二つ）に続けてオプションを指定することで
  extconf.rb に引数を渡すことができます。

    ruby setup.rb config -- --with-tklib=/usr/lib/libtk-ja.so.8.0

install のタスクオプション
--------------------------

    --no-harm

        挙動を表示するだけで実行しません。

    --prefix=PATH

        config で決定したパスの先頭にさらに PATH を付加します。
        config --prefix がプログラムが実行されるときのパスであるのに
        対し、install --prefix はプログラムファイルをコピーするパスを
        指定します。主に RPM などのバイナリパッケージ作成用です。
        デフォルトは空文字列です。

