ようこそ

# Exerbへようこそ

## 目次

1. 概要
2. 特徴
3. 利点と欠点
   1. 利点
   2. 欠点
4. インストール
   1. バイナリをインストール
   2. ソースコードをインストール
5. 使用方法
6. ドキュメント
7. 参考Webサイト
8. その他

## 1.概要

Exerbは、RubyスクリプトをWindows実行形式ファイル（以下、実行ファイル）に変換するためのソフトウェアです。

Exerbは、同梱の「Exerbコア」とユーザーが準備した「レシピファイル」を入力することで、実行ファイルを生成します。 ExerbコアにはRubyインタプリタが含まれており、生成された実行ファイルを起動すると、このRubyインタプリタでRubyスクリプトが実行されます。 レシピファイルには実行ファイル内に格納するRubyスクリプトや拡張ライブラリの情報、各種設定を記述します。

## 2.特徴

Exerbの主な特徴は下記の通りです。

- 複数のRubyスクリプトファイル、拡張ライブラリファイルを単一の実行ファイルに変換することができます。
- 生成された実行ファイルは、Rubyインタプリタが存在しない環境でも実行することができます。
- 実行ファイルへの変換に、コンパイラ等の外部ソフトウェアを必要としません。

## 3.利点と欠点

Exerbを用いてRubyスクリプトを実行ファイルに変換することによる利点と欠点は、下記の通りです。

### 3.1.利点

- Ruby言語の持つ高い生産性を活用して、手軽にWindowsソフトウェアを作成することができます。
- 一般的なコンパイラ、リンカで生成された実行ファイルと同様に扱うことができます。
- 複数のファイルを単一のファイルにまとめることができるため、ファイル管理・配布が容易です。
- Rubyインタプリタを内蔵しているため、配布が容易です。
- 異なるバージョンのRubyインタプリタで動作するRubyスクリプトを、一つの環境に混在させることができます。
- RubyスクリプトをRubyインタプリタに関連付けて起動する場合と異なり、標準入出力がそのまま利用できます。

### 3.2.欠点

- Rubyスクリプト、拡張ライブラリが正常に動作しない場合があります。
- Rubyインタプリタを内蔵しているため、実行ファイルの最低サイズが約500kbと大きめです。（ランタイムDLLを利用しない場合）
- 実行ファイル内にそのままソースコードを格納するため、リバースエンジニアリングが容易です。
- MSVCRT32版Rubyに存在しない機能（fork等）が利用できません。

ただし、実行ファイルサイズについては、ランタイムライブラリを使用するExerbコアを用いることで改善できます。

## 4.インストール

Windows用のバイナリをインストールする方法と、ソースコードをインストールする2種類の方法があります。 本格的に使用する場合は、ソースコードをインストールすることを推奨します。

### 4.1.バイナリをインストール

アーカイブを解凍し、任意のディレクトリに配置するだけで、インストールが完了します。 バイナリファイルをインストールするためのインストーラー等は付属していません。 srcディレクトリ、docディレクトリ以下のファイルは動作には不要なので、コピーしなくても構いません。

exerbコマンドを任意のディレクトリから使用する場合は、環境変数PATHを変更してください。

### 4.2.ソースコードをインストール

ソースコードをインストールするには、srcディレクトリのsetup.rbを使用します。 ソースコードのインストール、及びexerbコマンド（Rubyスクリプト）の実行には、Rubyがインストールされている必要があります。 ソースコードをインストールすることで、Linux等の環境でもExerbを使用できます。 ただし、生成される実行ファイルはWindows用です。

exerbというディレクトリにアーカイブを解凍した場合の例は、下記の通りです。 インストール先によっては管理者権限が必要です。

$ cd exerb
$ cd src
# ruby setup.rb

## 5.使用方法

exerbコマンドの使用方法は下記の通りです。

$ exerb [オプション] レシピファイル

簡単な使用例についてはチュートリアルを、同梱のサンプルについては使用例を参照してください。 また、コマンドラインオプション、レシピファイルのフォーマットについては、リファレンスマニュアルを参照してください。

## 6.ドキュメント

...

- example
- recipe
- tutorial
- misc
- 適用されるライセンス、著作権、免責について

## 7.参考Webサイト

Exerb Project
  Exerb Projectの本家Webサイト。Exerbの最新リリース等を入手できます。
オブジェクト指向スクリプト言語Ruby
  Rubyの本家Webサイト。Rubyのソースコード、リファレンスマニュアル、各種ライブラリ等を入手できます。

## 8.その他

Exerbは加藤勇也によって開発されたソフトウェアです。 Exerbに関するご意見、バグ報告等はyuyakato@gmail.comまでお送りください。

Rubyを開発されたまつもとゆきひろ氏と、開発に関わったすべての方々に深く感謝します。 素晴らしい言語、開発環境をありがとう！