CUBE SUGAR CONTAINER

技術系のこと書きます。

Vagrant Cloud から取得した Box のバージョンを更新する

今回は Vagrant Cloud からダウンロードしてきた Vagrant Box を更新する方法について。 それにしても、最近は自分で Vagrant Box を作っていた頃なんてすっかり今は昔という感じだ。

使った環境は次の通り。

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G29
$ vagrant --version
Vagrant 1.9.7

まず、次のように Vagrant Cloud からダウンロードしてきた Box が登録されている状況を考える。 使っている Box は Ubuntu 公式の ubuntu/xenial64 だ。

$ vagrant box list
ubuntu/xenial64 (virtualbox, 20170803.0.0)

そして、Vagrant Cloud に登録されている Box は、定期的にバージョンアップすることがある。 そんなときは vagrant box update コマンドを使って更新しよう。 更新する Box は --box オプションで指定する。

$ vagrant box update --box ubuntu/xenial64
Checking for updates to 'ubuntu/xenial64'
Latest installed version: 20170803.0.0
Version constraints: > 20170803.0.0
Provider: virtualbox
Updating 'ubuntu/xenial64' with provider 'virtualbox' from version
'20170803.0.0' to '20170830.1.1'...
Loading metadata for box 'https://vagrantcloud.com/ubuntu/xenial64'
Adding box 'ubuntu/xenial64' (v20170830.1.1) for provider: virtualbox
Downloading: https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20170830.1.1/providers/virtualbox.box
Successfully added box 'ubuntu/xenial64' (v20170830.1.1) for 'virtualbox'!

これで、次のように更新された Box が得られる。

$ vagrant box list
ubuntu/xenial64 (virtualbox, 20170803.0.0)
ubuntu/xenial64 (virtualbox, 20170830.1.1)

ちなみに、更新したい Box を使っている Vagrantfile がカレントディレクトリにあるときはオプションを指定しなくても良い。

$ ls
Vagrantfile
$ vagrant box update
==> default: Checking for updates to 'ubuntu/xenial64'
    default: Latest installed version: 20170830.1.1
    default: Version constraints: 
    default: Provider: virtualbox
==> default: Updating 'ubuntu/xenial64' with provider 'virtualbox' from version
==> default: '20170830.1.1' to '20170914.2.0'...
==> default: Loading metadata for box 'https://vagrantcloud.com/ubuntu/xenial64'
==> default: Adding box 'ubuntu/xenial64' (v20170914.2.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20170914.2.0/providers/virtualbox.box
==> default: Box download is resuming from prior download progress
==> default: Successfully added box 'ubuntu/xenial64' (v20170914.2.0) for 'virtualbox'!
$ vagrant box list
ubuntu/xenial64 (virtualbox, 20170803.0.0)
ubuntu/xenial64 (virtualbox, 20170830.1.1)
ubuntu/xenial64 (virtualbox, 20170914.2.0)

めでたしめでたし。