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系の開発はこれで一安心。

人見知りソフトウェアエンジニアです。ビジュアル系、お笑い、Pixarが好き。勢いで吉本超合金おたけびBOTを作った。オールザッツ漫才が放送されない東京在住。

趣味や日常からアウトプットの場としてブログを書いています。自作のWordPressプラグインにGitHub Flavored MarkdownAmazonJSなど。