← ブログ一覧
IT

なぜSetupファイルを起動するだけでアプリがインストールできるのか

普段何気なく実行しているSetupファイル。クリックするだけでアプリが使えるようになる仕組みを、自分なりに調べて整理してみました。


なぜSetupファイルを起動するだけでアプリがインストールできるのか調べてみた

最近、自分でもデスクトップアプリを作る機会が増えてきて、ふと疑問に思ったことがあります。

普段ソフトをインストールするときって、

「setup.exe」

をダブルクリックするだけですよね。

すると勝手にファイルがコピーされたり、スタートメニューに登録されたりして、アプリが使えるようになります。

でも考えてみると、

「なぜ1つのファイルを起動するだけで、こんなにいろいろな処理ができるんだろう?」

という疑問が出てきました。

今回は備忘録も兼ねて、調べた内容を自分なりに整理してみます。


Setupファイルはインストール専用のプログラム

まず最初に分かったのは、

Setupファイル自体も普通のプログラム

ということです。

なんとなく「インストーラー」という特別な存在だと思っていましたが、実際には普通の実行ファイルらしいです。

つまり、

  • ファイルをコピーする
  • フォルダを作る
  • ショートカットを作る
  • 設定を書き込む

といった作業を順番に実行しているだけとのこと。

人間が手作業でやると面倒なことを、自動でやってくれるプログラムというイメージが近そうです。


アプリ本体がSetupファイルの中に入っている

個人的に一番面白かったのがここです。

実はSetupファイルの中には、

インストールしたいアプリ本体

が含まれていることが多いそうです。

イメージとしてはこんな感じです。

setup.exe
├─ アプリ本体
├─ アイコン
├─ 設定ファイル
├─ ライブラリ
└─ インストール手順

ユーザーがSetupを起動すると、

まずSetupプログラムが動く

中に入っているファイルを取り出す

指定された場所へ配置する

ショートカットを作成する

完了

という流れみたいです。

Setupファイルは「アプリをインストールするための作業員」と考えると分かりやすい気がしました。


なぜ管理者権限を求められるのか

インストール中に、

「このアプリがデバイスに変更を加えることを許可しますか?」

という画面が出ることがあります。

これも今回調べていて納得しました。

アプリのインストールでは、

  • Program Filesへの書き込み
  • レジストリへの登録
  • システム設定の変更

などを行う場合があります。

Windowsからすると、

「本当にやっていい?」

と確認している状態らしいです。

勝手にシステムを書き換えられると危険なので、当然といえば当然なのかなと思いました。


Setupファイルは魔法のファイルではなく、「アプリを配置して設定するための自動実行プログラム」と考えると理解しやすい。


最近のアプリはインストール不要なものもある

調べていると、

「インストール不要版」

というものもよく見かけます。

いわゆるポータブル版と呼ばれるものです。

これは必要なファイルが最初からまとまっていて、

フォルダごと置けば動く

という仕組みらしいです。

つまり、

Setupがやっている作業を最初から終わらせている状態

とも言えそうです。

最近はUSBメモリに入れて持ち運べるソフトも増えているので、こうした方式もよく使われているようです。


インストーラーを作るソフトも存在する

さらに調べると、

開発者が毎回Setupを手作業で作っているわけではない

ことも分かりました。

例えば、

  • Inno Setup
  • NSIS
  • InstallShield

などのツールがあるそうです。

開発者は、

「このファイルをここに配置する」

「このショートカットを作る」

といった設定を書くだけで、インストーラーを自動生成できるらしいです。

自分もアプリ開発をしているので、

「なるほど、こうやって配布用のSetupファイルが作られているのか」

と少しイメージが湧きました。


まとめ

普段は何気なくクリックしているSetupファイルですが、調べてみると意外とシンプルな仕組みでした。

Setupファイル自体がプログラムとして動き、

アプリ本体を展開し、

必要な場所へ配置し、

設定やショートカットを作っているだけです。

もちろん細かい部分にはもっと複雑な技術が使われていると思いますが、

「なぜクリックするだけでインストールできるのか」

という疑問に対しては、

Setupプログラムが裏で必要な作業をすべて自動で実行しているから

という理解で大きく外れていなさそうです。

普段当たり前に使っているものほど、仕組みを調べてみると意外と面白いなと感じた内容でした。