インストール
インストールは、
コンピュータにソフトウェアを追加し、使用可能にすること。本稿で詳述する。
OSの定められた手順 (インストーラ) でソフトウェアをシステムに追加することの俗称。
----
コンピュータの分野におけるインストール (install) とは、コンピュータにソフトウェアを追加し、使用可能にすることを指す。この意味では、セットアップ (setup) とも呼ばれる。
黎明期を除く多くのコンピュータは、大きく分けてハードウェア(物理的部分)とソフトウェア(電子情報、処理手順)の2つの要素で成り立っている。ハードウェアはソフトウェアによって制御され、ソフトウェアはハードウェアが無ければ実行することができない。ハードウェアをコンピュータとして機能させたり、また必要な機能を持たせるためには、ハードウェアにソフトウェアを追加し、必要な設定を行い、動作可能な状態にしなければならない。この一連の作業をインストールという。
英語のinstallは「設置する」「取り付ける」といった意味であるから、本来はソフトウェアに限らず、物理的要素であるコンピュータやディスプレイを設置すること、周辺機器を接続すること、拡張カードを取り付けることなど、ハードウェア全般についても用いる語である。だが、日本語ではIBM用語などに見られる程度で、一般的にはソフトウェアを導入する意味に用いられる。
すなわちインストールとは、オペレーティングシステム (OS) やアプリケーションなどが格納されているCD-ROMなどの記憶媒体や圧縮ファイルなどからファイルを展開し、コンピュータでこれらを利用可能にし実行できる状態にすることを指す。
ただしmakeにおけるmake installは、単にパスの通った場所にコピーして利用可能にすることを慣習的に意味しており展開の操作を含まない。むしろ上記の語義に近い。
インストールのうち、製品の旧バージョンから新バージョンに上書きすることはアップグレードという場合が多い(逆に旧バージョンに上書きすることはダウングレードという)。対義語はアンインストール(削除)。
具体的なインストールの方法は以下の手順があるが、OSの種類や提供者の方針により方法が異なる。具体的には、
ソースコードをコンパイル、ビルド、メイクして組み込む。
OSのファイル管理システムを使い、他のマシンや媒体からハードディスクドライブ等に直接コピーする方法
インストーラと呼ばれるインストール専用のプログラムを前述の方法でコピーし実行する方法。
「ストア」などのアプリケーションから選択する方法。
目的のアプリケーションが入ったOSごとインストールする方法。
がある。
一般的にインストールはソフトウェアを利用可能にする手順の一つであり、ファイルを展開し、実行可能な状態にするところまでを指すことが多い。
ソフトウェアの規模や性質から、インストール作業に一部の(あるいはすべての)設定作業を伴うものもあり、またOSのインストールとデバイスドライバのインストールのように連続した作業を要する場合もある。
プロセス中にメッセージやウィンドウを表示しないインストール。「サイレントインストール」は「無人インストール」とは別物だが、しばしば誤用される。
無人インストール (Unattended install)
インストールの過程でユーザ入力を必要としないインストール。このため、自動インストールとも呼ばれる。厳密には、インストール開始の操作以外にまったくユーザの関与を必要としないものをいう。インストールには、ソフトウェア利用許諾契約への「同意」を選択する操作や、各種オプションの指定、パスワードの入力などを必要とすることがよくある。GUI環境では、ウィザード形式でこれらの手順を示すインストーラが一般的である。しかし、そのようなインストーラでも一部のものはコマンドラインスイッチで無人インストールが指定可能である。
インストール中に入力・選択すべき項目をアンサーファイルと呼ばれるファイルにあらかじめ記述しておき、それに基づいて無人インストールを実行するというインストーラが存在する。大量のコンピュータにWindowsをインストールするなどといった場面で活用される。同等の機能はOS/2ではレスポンスファイルとして実装され、またRed Hat Enterprise Linuxではキックスタートという機能で同様の自動作業が行われる。
利用者によるインストール開始の操作を必要とせずに無人インストールが開始されるもの(たとえばD02HWのモバイルパートナーのソフトはUSB端子からのセルフインストールであった)。
対象のコンピュータ(特に映像出力のないコンピュータ)に接続されたモニタを使用せずに機能するインストール。これはLocal Area Network経由で、あるいはシリアルケーブル経由で接続された別のマシンで実行されるインストールであることがある。
アンアテンデドおよびヘッドレスインストールはシステムアドミニストレータの一般的な業務である。
典型的な設備の複雑さを与えられたとき、成功した終了を妨げるかもしれない多くのファクターがある。同じプログラムの古いインストールから残り物である特定のファイルや、OSの複雑な状況が、与えられたプログラムが正しくインストールし、動作させることを防止するために作動するかもしれない。そのような妨害因子(プログラムによって変わるもしれない)がいない状況で実行されたインストールはクリーンインストールと呼ばれる。特に、OSのクリーンインストールは、実際にインストールする前にそのあて先のパーティションをフォーマットすることによって実行することができる。
メディアから直接ではなく、ハードディスクへのそのオリジナルのメディア(たいていCDかDVD)の内容のコピー(フラットコピーと呼ばれる)からプログラムのインストールを行うこと。これは目標のマシンが、しばしばインストールに必要なCPUに集中したタスクを実行すると同時に、CD/DVDからのランダムアクセスに対処することができないか、目標のマシンが適切な物理的ドライブを持っていないようないくつかの状況を助ける。
共有されたネットワークドライブからのプログラムのインストール。これは単に(フラットインストールのために)オリジナルのメディアのコピーであるかもしれないが、頻繁に、大口顧客のために、サイトのライセンスを提供するソフトウェアの製作者はネットワークインストールが意図されているバージョンを提供する。またLinuxやFreeBSDなどでは、光学ドライブなどを備えないPCのためにネットワークを介したOSのインストールが提供される場合がある。OS/2のように起動FDを介して、ネットワーク経由でインストールCDにアクセスするネットワークインストール形態も存在する。
AmigaOSは1991年のバージョン2.0以降Installerと呼称されるセンタライズされた標準のインストールユーティリティを特徴とする。それはLISP言語インタプリタによって動作し、これらがプレーンテキストファイルであるのでユーザはインストールのスクリプトを編集する能力を持っている。インストーラはまた、ユーザーがバーチャルインストールを実行し、本当のインストールを委任する前に起こりえるどのような問題をも確認するための卓越した機会を特徴とする。
主にもともと入っていたソフトの異なるバージョンを、元のバージョンを削除せずにインストールすることを指す(主に古いバージョンから新しいバージョンに上書きする。アップグレードともいう)。設定ファイルなどの再設定を行わず、実行ファイルなどのみを更新することで、異常になったソフトウェアを回復させる試みとして実行されることもある。
インストールを対話形式で簡単に行うためのプログラムである。特定の場所に確実にインストールしてもらう必要がある場合、インストールするファイルが複数のディレクトリに散在している場合、ライセンスキーの照合が必要な場合、システムのクリーンインストール(ハードディスクを初期化したうえで再度システムを入れ直すこと)後の自分のデータの復旧を自動で行いたい場合、あるいは単に見栄えをよくする目的で用いられる。
インストーラで行うことは、まず使用許諾契約書の承認、次に使用ユーザーの入力(必要な場合)、インストール先の選択(必要な場合)、最後に必要なのアーカイブからの展開である。インストール中は用意された画像の表示やほかの製品の宣伝が行われることもある。
一般的にインストーラでインストールしたプログラムにはアンインストーラがついている。これはインストールしたプログラムをアンインストール(削除)するためのプログラムである。また、プログラムのバージョンアップを行う際にインストーラと同じ要領でバージョンアップを行えるようにアップデータを使用することもある。アップデータは自動的にパージョンアップの対象となるプログラムを検索し、入れ替えるべきファイルを自動的に入れ替える(またはすべてのファイルを入れ替える)。これと似たプログラムにパッチプログラムが存在する。これはデータの変更された部分の差分だけが用意されており、アップデータよりデータを小さく出来る。パッチプログラムは用意された差分から既存のデータを最新のものに書き換えることでバージョンアップを行う。
コンピュータプログラムのインストールの間、インストーラまたはパッケージマネジャー自身をアップデートすることが時々必要である。これを可能にするためにブートストラップと呼ばれるテクニックが使用される。このための共通のパターンは、インストーラをアップデートし、アップデートの後で本当のインストールを始める小さな実行可能ファイル(例: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ストア経由で配信・販売・購入・ダウンロー
LinuxやFreeBSDなどのオープンソースのオペレーティングシステム(OS)では、、そのように統一されているものは、GNU/Linuxではディストリビューション元が、各BSD系ではFreeBSDプロジェクトなどのプロジェクトがメンテナンスをしているパッケージがそのように扱えるということであって「多くの異なる組織や個人によって作成された多様なアプリケーションソフトウェア」に、統一された方法は、本来は存在しない。
Macintoshではアプリケーションは原則としてどこにでも置け、アイコンをダブルクリックするだけで起動できるものとして設計されていた。この場合「インストール」という概念は希薄となり、必要とするソフトウェアを好きなところに置けば良いことになる。ただし、共有ライブラリやシステムに密接に関わるソフトウェアはこの限りではなく、フォントや機能拡張ファイルはシステムフォルダに組み込む必要があった。その後共有ライブラリやプラグインなど外部のソフトウェアに依存するソフトウェアの増加により、インストーラを必要とするものが増えていったが、アプリケーションは原則としてどこに置いても起動可能であるということは変わらなかった。
現在のmacOSでは、アプリケーションパッケージの採用により、多くのアプリケーションはハードディスクの中にアプリケーションファイルを移動するだけで簡単にインストールでき、アプリケーションファイルをゴミ箱に捨てるだけでアンインストールできる。デバイスドライバやシステム環境設定ファイルのインストールについては、インストーラを必要とする。フォントはファイルをダブルクリックすることでインストールできる。オペレーティングシステムやアップルのソフトウェアのインストールについては、ソフトウェア・アップデートで提供されている。