iMacはプリインストールされたYosemiteでセットアップしていたけどVagrantが動かなくてなかなか開発マシンとして始動できずにいた。ruby環境がおかしいのかと思っていろいろ切り分けていたところVagrant本体やVirtualBoxに問題があるのではなく単純にVagrant Pluginに問題があるようだった。
具体的には vagrant-berkshelf
の 2.0.1
と vagrant-hostsupdater
で型変換ができないエラーが起きていた。
vagrant-berkshelf-2.0.1/lib/berkshelf/vagrant/config.rb:57:in ‘expand_path’: no implicit conversion of Proc into String (TypeError)
とか
vagrant-hostsupdater-0.0.11/lib/vagrant-hostsupdater/HostsUpdater.rb:107:in `digest’: no implicit conversion of nil into String (TypeError)
とかエラーがでる。
vagrant-berkshelf
は#228で報告されているのでworkaroundとして57行あたりを以下のように変更した。
@client_key = @client_key.call() if @client_key.kind_of? Proc
@client_key = File.expand_path(@client_key, machine.env.root_path.to_s)
vagrant-hostsupdater
は無くても困らないのでアンインストールすることにした。vagrant-hostsupdaterはvarant up
の際にhostsファイルにローカルアドレスを書き込んでくれるものだが名前解決したいときは自分で編集すればいいだけなので無くてもあまり困らない。
なんとなくシステムから取得している値がPluginが期待しているものと違う感じなんだけど今回の問題がYosemiteに起因しているのかはわからない。とりあえずVagrantが動くようになったのでWeb系の開発はこれで一安心。