スマートフォンやパソコンを使っていると、いろいろなソフトウェアのアップデートを「さばく」、ということが大事だと感じます。
今回、「アップデートしようとしたら、削除していた」という、ちょっと「不思議」な体験をしたので、メモしておきます。

パソコンに慣れてても、そんなことがあるんだね
macOS Catalina 10.15.7
Java 8 Update 271 build 09
1. “A new version of Java is available!”
「Java 8 Update 271 build 09」のアップデート通知が表示されました。

1-1. そもそもJavaって何?
Javaというのはプログラミング言語の名前です。
ただ、ここで更新する「Java」はプログラミング言語のことではありません。
「Javaランタイム環境(Java Runtime Environment)」というもので、Javaを利用している一部のWebサイトを表示するのに必要な基本ソフトになります。
「ランタイム(run-time)」は、アプリケーションを実行(run)する時に必要な、共通のプログラムの部品をまとめたものです。
メッセージにあるように、これまでのバージョンが Java 8 Update 261 だったので、更新することにしました。
「Install Update」をクリックします。
1-2. 更新データがダウンロードされる
更新データをダウンロード、展開(extract)しています。

自動的に、ダウンロードされた更新プログラムが起動します。
更新作業を実行するプログラムのことを「アップデーター」ともいいます。

更新はシステムを変更するので管理者権限が必要です。パスワード入力画面が表示されます。

1-3. 緑色ボタンを押しがち
パスワードを入力すると、Javaのインストール画面が表示されます。

あとから気づくのですが、ここでうっかり「削除」の方を選んでしまったんです。
この状態、緑色のボタンを押したくなりませんか?
通常、選択するの方に色が付いていることが多いので、そのまま色で選んでしまったんですよね。

自分のイメージでは、 [インストール] [更新] に見えてました。
1-4. Javaデプロイメント・キャッシュの削除
すると、「Javaデプロイメント・キャッシュ」を削除をするか、選択する画面になりました。

「Javaデプロイメント・キャッシュ」が、そもそもわかりません。
せっかくなので、「詳細」を読んでみました。
「詳細」は、「Javaデプロイメント・キャッシュ」を手動で削除する方法の説明でした。
「Javaデプロイメント・キャッシュ(deployment cache)」は、「Javaが実行されていたときに、Javaによって保存されていたファイル」です。
Javaそのものを削除するなら、キャッシュも不要になるわけです。
「デプロイメント(deployment)」は、「配備」という意味で、ソフトウェアを利用可能な状態にすることです。
この辺で、「更新」をしているつもりが、なんか雲行きが怪しいことに気づきました。
そして、疑念は確信に変わります。

2. 気を取り直してJavaをインストール
さて、うっかりJavaランタイムを削除してしまいました。
再度インストールするために、Javaランタイムをダウンロードしにいきます。
「同意して無料ダウンロードを開始」をクリックすると、ファイルのダウンロードが開始します。
Macだと、ファイルの拡張は「dmg」になります。
拡張子「dmg」は、仮想ディスク(apple disk image)形式で、CDやDVDソフトのように中にインストール用データ(インストーラー)が入っています。

2-1. 仮想ディスクとインストーラーの二重構造
ダウンロードした、ファイル「jre.8u271-macosx-x64.dmg」を開きます。

中に入っている、「Java 8 Update 271.app」を起動します。
インターネットからダウンロードしたファイルを開くときには、注意喚起のメッセージが表示されます。
ここでは「開く」をクリックします。

改めて、パスワードを入力します。

3. インストーラーとアップデーターは同じもの
すると、あれ? さっきも見た画面。

はじめの更新プログラムの画面になります。

Javaは、インストールもアップデートも、同じプログラムで実行しているんですね。
今度は、間違えず「インストール」を選びます。
順調にインストールは進み、「正常にインストールされました」。

3-1. 【まとめ】「インストール」と「更新」はほとんど同じ
ふだん、プログラムの「インストール」と「更新」は、全く別の操作だと感じます。
「インストール」はすべてのデータをコピーするので大掛かりだけど、「更新」は差分のデータだけなので簡単なことだと思っていました。
しかし、いろいろなバージョンがあるので、「差分」だと 何が「差」なのかを判定するが大変です。
「ユーザーの設定」だけを残して、プログラム部分をすっきりインストールし直した方が、処理としてはスムーズなのかもしれません。
そう考えると、「更新」と「インストール」は、ほとんど同じなんですね。
そんなことに気づかされる経験でした。
最後までお読みいただいて、ありがとうございました。

