VagrantのBoxのUpdateはやらなくていい？

## 環境
Ubuntu20.4
Vagrant2.2.18

## 内容

Vagrantを起動して、仮想マシンのUbuntuを起動しようとしたところ、つぎのようなメッセージが表示されました。

```PowerShell
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Checking if box 'bento/ubuntu-20.04' version '202107.28.0' is up to date...
A newer version of the box 'bento/ubuntu-20.04' for provider 'virtualbox' is
available! You currently have version '202107.28.0'. The latest is version
'202309.09.0'. Run `vagrant box update` to update
```

>《翻訳》
指定されたボックス 'bento/ubuntu-20.04' のバージョン '202107.28.0' が最新かどうかを確認しています...
プロバイダ 'virtualbox' 用のボックス 'bento/ubuntu-20.04' の新しいバージョンが利用可能です！現在のバージョンは '202107.28.0' です。最新のバージョンは '202309.09.0' です。アップデートするには vagrant box update を実行してください。

Boxの最新バージョンがリリースされているため、新しいバージョンに更新してくださいといった案内でした。

既存のバージョンを確認を確認してみます。

```PowerShell
>vagrant -v
Vagrant 2.2.18
```

こちらのコマンドでもバージョンを確認することができます。こちらのコマンドでは、既存のバージョンだけでなく、現在リリースされている最新のバージョンも一緒に表示してくれます。確かに、既存のバージョンが古いことが分かります。

```PowerShell
>vagrant version
Installed Version: 2.2.18
Latest Version: 2.4.0

To upgrade to the latest version, visit the downloads page and
download and install the latest version of Vagrant from the URL
below:

  https://www.vagrantup.com/downloads.html

If you're curious what changed in the latest release, view the
CHANGELOG below:

  https://github.com/hashicorp/vagrant/blob/v2.4.0/CHANGELOG.md
```

メッセージで案内があったのは、VagrantのバージョンではなくBoxのバージョンです。Vagrant自身もバージョンアップさせてもいいのですが、今回は割愛することにしました。さて、現在インストールされているBoxの一覧を表示させると、既存のBoxのバージョンを確認することができます。

```PowerShell
>vagrant box list
bento/ubuntu-20.04 (virtualbox, 202107.28.0)
```

Boxのバージョンアップはメッセージに書かれていた通り、Updateコマンドで行います。コマンドを実行すると既存のBoxが最新版に置き換わるのではなく、既存のBoxを残しながら、追加で最新のBoxをダウンロードしてくれます。

Updateコマンドを実行するときに、Box名を明示的に指定した方がいいのか、省略してもいいのかは分からないが、念のための指定することにしました。

```PowerShell
>vagrant box update --box bento/ubuntu-20.04
Checking for updates to 'bento/ubuntu-20.04'
Latest installed version: 202107.28.0
Version constraints: > 202107.28.0
Provider: virtualbox
Updating 'bento/ubuntu-20.04' with provider 'virtualbox' from version
'202107.28.0' to '202309.09.0'...
Loading metadata for box 'https://vagrantcloud.com/bento/ubuntu-20.04'
Adding box 'bento/ubuntu-20.04' (v202309.09.0) for provider: virtualbox
Downloading: https://vagrantcloud.com/bento/boxes/ubuntu-20.04/versions/202309.09.0/providers/virtualbox/unknown/vagrant.box

Successfully added box 'bento/ubuntu-20.04' (v202309.09.0) for 'virtualbox'!
```

Boxの一覧を表示すると最新版のBoxが表示されました。確かにインストールされています。

```PowerShell
>vagrant box list
bento/ubuntu-20.04 (virtualbox, 202107.28.0)
bento/ubuntu-20.04 (virtualbox, 202309.09.0)
```

Vagrantを起動してみます。最新版のBoxで起動されるのかと思ったが、また、違うメッセージが表示されました。

```PowerShell
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Checking if box 'bento/ubuntu-20.04' version '202107.28.0' is up to date...
A newer version of the box 'bento/ubuntu-20.04' is available and already
installed, but your Vagrant machine is running against
version '202107.28.0'. To update to version '202309.09.0',
destroy and recreate your machine.
```

>《翻訳》
マシン 'default' を 'virtualbox' プロバイダで起動しています...
ボックス 'bento/ubuntu-20.04' バージョン '202107.28.0' が最新かどうかを確認しています...ボックス 'bento/ubuntu-20.04' の新しいバージョンが利用可能で既にインストールされていますが、Vagrant マシンはバージョン '202107.28.0' で実行されています。バージョン '202309.09.0' に更新するには、マシンを破壊して再作成してください。

どうも、最新版のBoxを反映させるためには、既存のBoxの環境を一旦削除しないといけないようです。うーん、これはちょっとリスクが大きい気がするなぁ。本当に削除しても大丈夫なのだろうか。心配になってググってみると、削除すると、既存の環境になんらかの影響が出る可能性があるようなことが書かれていました。バージョンアップは一旦取りやめることにしました。Boxのバージョンが多少古くても何らかの影響がわるけではないので。

## 参考記事
https://stackoverflow.com/questions/25914383/update-a-vagrant-box