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