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

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

## 最も単純な方法

通常は次の三行で十分です。 （`#` の行ではおそらくスーパーユーザ権限が必要でしょう）

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

`config` は設定の変更、`setup` がコンパイル、 `install` で実際のインストールを行います。

## 詳しい解説

以下、もう少し詳細に説明します。`setup.rb` にはグローバル オプションとコマンド、そしてコマンド専用のオプションが あります。組みあわせとしては以下のようになります。

    ruby setup.rb グローバルオプション
    ruby setup.rb コマンド
    ruby setup.rb コマンド コマンドオプション

CVS を知っている人は `cvs` コマンドに似たようなものだと思ってください。

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

-`q,--quiet`

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

--`verbose`

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

-`h,--help`

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

-`v,--version`

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

--`copyright`

  `setup.rb` の著作権を表示

  コマンドは以下の五つです。

`config`

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

`show`

  現在の設定を表示する

`setup`

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

`install`

  インストールを行う。

`clean`

  `setup` で作成したものを消す

`distclean`

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

  続いて順次コマンドのオプションを解説します。

### config のタスクオプション

--`prefix=PATH`
--`rb-dir --so-dir` などの共通部分
--std-ruby=PATH

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

--site-ruby-common=PATH

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

--site-ruby=PATH

  バージョンつき site_ruby へのパス

--`bin-dir=PATH`

  実行可能ファイル（コマンド）をインストールするパス

--`rb-dir=PATH`

  Ruby ライブラリをインストールするパス

--`so-dir=PATH`

  Ruby の拡張モジュールをインストールするパス

--`data-dir=PATH`

  その他のデータファイルをインストールするパス

--ruby-path=PATH

  `#!` 行 `(shebang)` にセットする Ruby インタプリタのパス。 (実行するときに使う ruby プログラムへのパス)

--ruby-prog=PATH

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

--`make-prog=NAME`

  拡張モジュールのコンパイルに使用する `make` プログラム

--`without-ext`

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

--`rbconfig=PATH`

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

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

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

--`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` などのバイナリパッケージ作成用です。 デフォルトは空文字列です。