今回は 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)
めでたしめでたし。