YosemiteとVagrant Plugin

iMacはプリインストールされたYosemiteでセットアップしていたけどVagrantが動かなくてなかなか開発マシンとして始動できずにいた。ruby環境がおかしいのかと思っていろいろ切り分けていたところVagrant本体やVirtualBoxに問題があるのではなく単純にVagrant Pluginに問題があるようだった。

具体的には vagrant-berkshelf2.0.1vagrant-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行あたりを以下のように変更した。

vagrant-berkshelf-2.0.1/lib/berkshelf/vagrant/config.rb
@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系の開発はこれで一安心。