インストール

概要

黎明期を除く多くのコンピュータは、大きく分けてハードウェア（物理的部分）とソフトウェア（電子情報、処理手順）の2つの要素で成り立っている。ハードウェアはソフトウェアによって制御され、ソフトウェアはハードウェアが無ければ実行することができない。ハードウェアをコンピュータとして機能させたり、また必要な機能を持たせるためには、ハードウェアにソフトウェアを追加し、必要な設定を行い、動作可能な状態にしなければならない。この一連の作業をインストールという。
英語のinstallは「設置する」「取り付ける」といった意味であるから、本来はソフトウェアに限らず、物理的要素であるコンピュータやディスプレイを設置すること、周辺機器を接続すること、拡張カードを取り付けることなど、ハードウェア全般についても用いる語である。だが、日本語ではIBM用語などに見られる程度で、一般的にはソフトウェアを導入する意味に用いられる。
すなわちインストールとは、オペレーティングシステム (OS) やアプリケーションなどが格納されているCD-ROMなどの記憶媒体や圧縮ファイルなどからファイルを展開し、コンピュータでこれらを利用可能にし実行できる状態にすることを指す。
ただしmakeにおけるmake installは、単にパスの通った場所にコピーして利用可能にすることを慣習的に意味しており展開の操作を含まない。むしろ上記の語義に近い。
インストールのうち、製品の旧バージョンから新バージョンに上書きすることはアップグレードという場合が多い（逆に旧バージョンに上書きすることはダウングレードという）。使用者が他のマシンや媒体からハードディスクドライブ等に直接コピーする方法と、インストーラと呼ばれるインストール専用のプログラムを用いて行う方法がある。対義語はアンインストール（削除）。
一般的にインストールはソフトウェアを利用可能にする手順の一つであり、ファイルを展開し、実行可能な状態にするところまでを指すことが多い。 ソフトウェアの規模や性質から、インストール作業に一部の（あるいはすべての）設定作業を伴うものもあり、またOSのインストールとデバイスドライバのインストールのように連続した作業を要する場合もある。

インストーラ

インストールを対話形式で簡単に行うためのプログラムである。特定の場所に確実にインストールしてもらう必要がある場合、インストールするファイルが複数のディレクトリに散在している場合、ライセンスキーの照合が必要な場合、システムのクリーンインストール（ハードディスクを初期化したうえで再度システムを入れ直すこと）後の自分のデータの復旧を自動で行いたい場合、あるいは単に見栄えをよくする目的で用いられる。
インストーラで行うことは、まず使用許諾契約書の承認、次に使用ユーザーの入力（必要な場合）、インストール先の選択（必要な場合）、最後に必要なファイルのアーカイブからの展開である。インストール中は用意された画像の表示やほかの製品の宣伝が行われることもある。
一般的にインストーラでインストールしたプログラムにはアンインストーラがついている。これはインストールしたプログラムをアンインストール（削除）するためのプログラムである。また、プログラムのバージョンアップを行う際にインストーラと同じ要領でバージョンアップを行えるようにアップデータを使用することもある。アップデータは自動的にパージョンアップの対象となるプログラムを検索し、入れ替えるべきファイルを自動的に入れ替える（またはすべてのファイルを入れ替える）。これと似たプログラムにパッチプログラムが存在する。これはデータの変更された部分の差分だけが用意されており、アップデータよりデータを小さく出来る。パッチプログラムは用意された差分から既存のデータを最新のものに書き換えることでバージョンアップを行う。

ブートストラッパー

コンピュータプログラムのインストールの間、インストーラまたはパッケージマネジャー自身をアップデートすることが時々必要である。これを可能にするためにブートストラップと呼ばれるテクニックが使用される。このための共通のパターンは、インストーラをアップデートし、アップデートの後で本当のインストールを始める小さな実行可能ファイル（例:setup.exe）を使う。この小さな実行形式はブートストラッパーと呼ばれる。時々、ブートストラッパはブートストラップのプロセスの間にもソフトウェアのためのほかの必須のものをインストールする。

共通のインストーラ

Windows、macOS、およびLinuxのためにインストーラを作り出すクロスプラットフォームのインストーラのビルダーとして、InstallAnywhere（フレクセラ・ソフトウェア）、JExpress (DeNova)、InstallBuilder (BitRock) が存在する。
WindowsのためのインストーラはソフトウェアのインストールコンポーネントMicrosoft Windows Installerが存在する。Windowsのためにインストーラを作成するための追加のサードパーティの商用のツールは、InstallShield（フレクセラ・ソフトウェア）、Wise Installation Studio（ワイズソリューションズ）、SetupBuilder (Lindersoft)、Installer VISE (MindVision Software)、MSI Studio（スクリプトロジック）、Actual Installer (Softeza Development)、Smart Install Maker (InstallBuilders Company)、MSI FactoryとSetup Factory（インディゴローズソフトウェア）が存在する。フリーな代わりのインストーラオーサリングツールはNSIS、IzPack、Clickteam、Inno Setup、WiXが存在する。
macOSにはネイティブのパッケージマネジャーソフトウェアInstallerが存在する。macOSはアプリケーションをアップデートする別個のソフトウェアApple Software Updateを含むが、アップルのソフトウェアとシステムソフトウェアのみをサポートする。macOSのための商業的なアプリケーションはまたInstaller VISE (MindVision Software)、InstallerMaker (StuffIt) などのサードパーティーのインストーラを使用することがある。
WindowsにはOSのセキュリティ更新プログラムやデバイスドライバーなどをネットワーク経由で配信・ダウンロード・インストールする仕組みとして、Microsoft UpdateやWindows Updateが存在する。また、Windows 8以降で利用可能なWindowsストアアプリは、従来のデスクトップアプリケーションとはインストール形態が異なり、基本的にWindowsストア経由で配信・販売・購入・ダウンロード・インストールする。

オープンソース系Unixの場合

LinuxやFreeBSDなどのオープンソースのオペレーティングシステム（OS）では、パッケージ管理システムにより、多くの異なる組織や個人によって作成された多様なアプリケーションソフトウェアの入手とインストールを統一的な方法で行える、といったように理解（誤解？）している者がいるようだが、そのように統一されているものは、GNU/Linuxシステムではディストリビューション元が、各BSD系ではFreeBSDプロジェクトなどのプロジェクトがメンテナンスをしているパッケージがそのように扱えるということであって「多くの異なる組織や個人によって作成された多様なアプリケーションソフトウェア」に、統一された方法は、本来は存在しない。

Mac OSにおける簡便化の取り組み

Macintoshではアプリケーションは原則としてどこにでも置け、アイコンをダブルクリックするだけで起動できるものとして設計されていた。この場合「インストール」という概念は希薄となり、必要とするソフトウェアを好きなところに置けば良いことになる。ただし、共有ライブラリやシステムに密接に関わるソフトウェアはこの限りではなく、フォントや機能拡張ファイルはシステムフォルダに組み込む必要があった。その後共有ライブラリやプラグインなど外部のソフトウェアに依存するソフトウェアの増加により、インストーラを必要とするものが増えていったが、アプリケーションは原則としてどこに置いても起動可能であるということは変わらなかった。
現在のmacOSでは、アプリケーションパッケージの採用により、多くのアプリケーションはハードディスクの中にアプリケーションファイルを移動するだけで簡単にインストールでき、アプリケーションファイルをゴミ箱に捨てるだけでアンインストールできる。デバイスドライバやシステム環境設定ファイルのインストールについては、インストーラを必要とする。フォントはファイルをダブルクリックすることでインストールできる。オペレーティングシステムやアップルのソフトウェアのインストールについては、ソフトウェア・アップデートで提供されている。