vagrant plugin update vagrant-digitalocean でハマった

久しぶりにDigital Ocean使ったらAPI v2.0になっていて動いてくれなかったので、vagrant-digitaloceanをアップデートしようとした。
だけど色々怒られて上手く行かなかったので、同じ苦しみを味合う人がいなくなるようにメモ。

vagrant plugin update vagrant-digitalocean してみる

An error occurred while installing nokogiri (1.6.3.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.3.1'` succeeds before bundling.

と言われてしまった。

vagrant-1.6.3.gemspec に Nokogiri に関する一行を追加。

これの対処法は Vagrantのpluginをインストールしようとして、nokogiriのエラーになる場合 とか、 osxでvagrantのpluginがインストールできない - Qiita に書いてある。

sudo vim /Applications/Vagrant/embedded/gems/specifications/vagrant-1.6.3.gemspec

して、以下を追加する。

s.add_dependency(%q<nokogiri>, ["= 1.6.2.1"])

これでNokogiriはOKだった。

もう一回 vagrant plugin update vagrant-digitalocean する

そしたら今度は

An error occurred while installing ffi (1.9.6), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.9.6'` succeeds before bundling.

といわれた。ffiってなんだ…?

xcode-select --install する

どうやらXcodeコマンドラインツールが入っていないっぽい。
そういえばXcode上げてからコマンドラインツール入れてなかった。

xcode-select --install

すると、下のようなインストール画面が出るので、Xcodeを入手するする。

f:id:star__hoshi:20141026010500p:plain

ffiはこれでOKだった。

参考にしたのはこれruby on rails - Bundle update fails on ffi - Stack Overflow

同じところではまってる人もいて、 vagrantのpluginインストールでffiでコケる - Qiita にはxcode-selectのパスを通したら直ったよって人もいたけど、私はこれじゃダメだった。

もう一回 vagrant plugin update vagrant-digitalocean する

Updated 'vagrant-digitalocean' to version '0.7.0'!
Updated 'vagrant-share' to version '1.1.2'!

成功した。