インストーラの仕事は平たく言ってしまえば、そのアプリケーションを動かすことができる環境を作る。ユーザーが指定したとおりに初期配置をする。そのためのファイルのコピーを行うものであり、ユーザーが初期設定するためのウィザードそのものも指します。そのウィザードで必要な (よくある) 作業は以下の 4 つだと思います。
インストーラに必要な作業
- 利用許諾書とその同意有無 (必要であれば)
- プロダクト キーの入力 (必要であれば)
- どのコンポーネント (もしくはどの種類のパッケージ) をインストールするか (複数のコンポーネントがあるならば必要)
- インストール パスの入力 (カスタム オプションになっているコトも)
これ以外に初期設定の選択肢を設けているインストーラがこの世には多数存在します。インストール作業とは直接関係しないそのアプリケーションのおおまかな設定をさせるものなどです。Install Shield 大好きな某 S 系列会社 (偏見かも) に多いのですが、こういったものは特定の条件下を除いてやめた方がよろしいかと思います。
特定の条件下というのは、たとえば、
特定の条件下の例
- そのアプリケーションにモードが 2 つ以上あり、それらのモードによってまったく異なる代物になる場合
- そのアプリケーションに初心者用 / 上級者用のレイアウトがある場合
- インストール後に設定が変えられない場合
1. は一般のパッケージにはあまりないのですが、工場の生産ラインに導入するアプリケーションで多く見られます。たとえば、スタンドアロン モードとオンライン モードで役割が異なる場合などです。こういったものは然るべきデフォルト値というものもなくユーザーが最低限選ばせなければならないものです。インストーラを本当に必要とする初心者がインストール後に設定を変えるのは困難であることが多いですから (開発者は首を傾げるものですが)、インストール時に選択させても良いでしょう。
2. は初心者と上級者を切り分けるオプションです。上級者からすればコマンドは全種類出ていた方が良いですが、初心者からするとコマンドは使いそうなものだけ出ていないといろんな意味で挫折します。それを考慮した親切設計と受け止めて良いと思います。また、初心者にこういう設定があって自分の知らないコマンドがあるのだという意識も植え付けることができるかもしれませんが、実際にアプリケーションを触る頃には忘れているかもしれません。
某 S 系列会社 (偏見かも) は上記のようなものではなく、初心者が見てもわからないオプションを細かく設定させられます。それもデフォルト値があっても良さそうなオプションばかりです。そんなものはインストール後に設定すれば良いわけです。せめて「既定の設定でインストール」みたいなオプションをつけてスキップさせて欲しいものです。これではインストールの段階からマニュアルと睨めっこしなくてはなりません。お客様が怒るのは無理はありません。インストーラの概念を無視した本末転倒なありがた迷惑だと思います。