Vagrantとveeweeインストール時のfogのバージョンエラーについて

概要

gemを使ってVagrantとVeeweeをインストールしました。
では早速というこで、veeweeコマンドを叩くとこのような↓エラーが‥
[bash]
veewee

/1.9.1/rubygems/specification.rb:1637:in raise_if_conflicts':
Unable to activate fog-1.10.1, because net-scp-1.0.4 conflicts with net-scp (~> 1.1)
[/bash]
たぶんfog-1.10.1がアクティブになってないよ。何故ならnet-scp-1.0.4がコンフリクトを起こしてるからさ (
・ω・´+) キリッ
と書いてあるはず。
なるほど。net-scpが怪しいのか←これがドハマリする結果になりました。
今回はこれを解決したいと思います。

インストール環境と各種バージョン

  • Mac
  • Ruby 1.9.3-p392
  • Vagrant 1.0.7
  • veewee 0.3.7

解決方法

原因はveeweeをインストールしたときに依存関係でインストールされたfogです。
fogのバージョンを下げることで解決します。
[bash]
#インストールされたfogのバージョン
Fetching: fog-1.10.1.gem (100%)
[/bash]

fog version 1.10.1をアンインストールします。
[bash]
gem uninstall -v 1.10.1
You have requested to uninstall the gem:
fog-1.10.1
veewee-0.3.7 depends on [fog (~> 1.8)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn] y
[/bash]
上記からveeweeがバージョン1.8以上のfogに依存していることがわかります。
よって、fog1.8をインストール
[bash]
gem install fog -v 1.8
[/bash]
これでエラーがなくなりました。
確認してみてください。

ドハマリしたところ

net-scpが怪しいと考えてそのあたりを解決することにしました。
[bash]
gem install vagrant veewee
ERROR: While executing gem … (Gem::DependencyError)
Unable to resolve dependencies: fog requires net-scp (~> 1.1)
[/bash]
どうやらfogがnet-scp バージョン1.1以上を求めている。
なのでインストールする。
[bash]
gem install net-scp -v 1.1
[/bash]
終わったのでveeweeをインストール
*この時点でvagrantなどにはエラーはでていない。
[bash]
gem install veewee
[/bash]
インストールが終わるとエラーが続発する。
具体的に上げるとvagantコマンド,veeweeコマンドともにエラーがでます。
エラー分は概要のところで書いたものです。
net-scp 1.0.4がインストールされてるのがおかしいのかと思い、アンインストール。
[bash]
gem uninstall net-scp -v 1.0.4
vagrant-1.0.7 depends on net-scp (~> 1.0.4)
[/bash]
どうやらvagrantはnet-scpの1.0.4以上に依存しているらしい。
しかし、いまnet-scp 1.1がインストールされているので関係ないと思われる。
[bash]
gem list | grep net-scp
net-scp (1.1.0)
[/bash]
ちゃんとインストールされている。
vagrantを実行してみる。
[bash]
vagrant up
/pathto/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs’:
Could not find ‘net-scp’ (~> 1.0.4) – did find: [net-scp-1.1.0]

[/bash]
エラー続発。
net-scp version 1.1以上がveeweeを使う上では欠かせない。
net-scp version 1.0.4もvagrantを使う上では欠かせない。
どうやらnet-scpあたりではないことがわかる←遅すぎ
ということでfogを疑い始めて具体的に解決できたわけです。
以上が経緯になります。

最後に

vagrantはパッケージとしてバージョン1.1以上がリリースされています。
私はsandboxなどのプラグイン関係が最新版だと対応してないのではないかと思い、今のバージョンを使っています。
なるべく新しいバージョンにするのならばパッケージからのインストールをお勧めします。