homesteadを立ち上げようとしたら
vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Checking if box 'laravel/homestead' is up to date... ==> default: A newer version of the box 'laravel/homestead' is available! You currently ==> default: have version '0.5.0'. The latest is version '0.6.0'. Run ==> default: `vagrant box update` to update. ==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision` ==> default: flag to force provisioning. Provisioners marked to run always will still run.
vagrant box update
でboxをupdateできるという。
これまでこの操作をやったことがなかったので、一応やっておいた。
vagrant box update ==> default: Checking for updates to 'laravel/homestead' default: Latest installed version: 0.5.0 default: Version constraints: >= 0.4.0 default: Provider: virtualbox ==> default: Updating 'laravel/homestead' with provider 'virtualbox' from version ==> default: '0.5.0' to '0.6.0'... ==> default: Loading metadata for box 'https://atlas.hashicorp.com/laravel/homestead?access_token=xAEs4w-5RNdDxys9mXUbknA9wpTvqgYSWuSmp6kLxEqystNw1TCnzkfsxnMsA-E4sZE' ==> default: Adding box 'laravel/homestead' (v0.6.0) for provider: virtualbox default: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.6.0/providers/virtualbox.box ==> default: Box download is resuming from prior download progress ==> default: Successfully added box 'laravel/homestead' (v0.6.0) for 'virtualbox'! vagrant box list laravel/homestead (virtualbox, 0.5.0) laravel/homestead (virtualbox, 0.6.0) // 増えてる
このまま vagrant up
を実行すると
vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Checking if box 'laravel/homestead' is up to date... ==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision` ==> default: flag to force provisioning. Provisioners marked to run always will still run.
おー立ち上がったっぽい。
でも昔 vagrantで複数インスタンスを立ち上げてみた ときには自分でどのboxを利用するか明示的に指定した。今回は何もしなくてもboxが切り替わるようなので、この仕組みがどうなっているのか調べてみる。
3日目の記事でVagrantfileを自動生成した。この自動生成ファイルの中身を見ると vendor/laravel/homestead/scripts/homestead.rb
が設定ファイルとあるので、このファイルを読んでみる。
# Configure The Box config.vm.box = settings["box"] ||= "laravel/homestead" config.vm.box_version = settings["version"] ||= ">= 0.4.0" config.vm.hostname = settings["hostname"] ||= "homestead"
このファイルにあるようにsettingsに明示的に "box"
、 "version"
、 "hostname"
を指定しない場合、それぞれ "laravel/homestead"
、">=0.4.0"
、"homestead"
が利用される。settingsとして読み込まれるのは laravelのインストールディレクトリ直下にある Homestead.yaml でデフォルトだと "box"
、 "version"
の指定がない。このため単に vagrant up
を実行すると "laravel/homestead"
boxの最新バージョンが利用される。
なので例えばhomesteadのバージョンが0.6.0に上がってるんだが、0.5.0のままで利用したいという場合は Homestead.yamlに次の行を足せば良い。
version: 0.5.0
この状態で vagrant reload
もしくは vagrant up
を実行する。
私は特にhomesteadのバージョンにこだわりがないので、version指定しなくて良いなーと思った。
1.5の時点で導入されてたらしいが全然確認してなかった。
今日はここまで。