2013-04-28

ruby-2.0.0-p0 で chef 11.4.4 をインストールする

ruby-2.0.0-p0 で chef をインストールすると、chef 実行時にこんなエラーが出た。

/Users/ataka/project/chef/vendor/bundle/ruby/2.0.0/gems/chef-11.4.4/lib/chef/provider/package/rubygems.rb:34:in `require': cannot load such file -- rubygems/format (LoadError)

この件に関しては、過去記事でダミーの format gem を作ることで解決した。

けれど、このやり方は自分で gem を作らねばならず面倒。少しでも簡便にインストールできる様にしようと、rubygems-format-dummy を GitHub に置いた。

これで、Gemfile を次の様に書けばよくなる。

source 'https://rubygems.org'
gem 'chef'
gem 'rubygems-format-dummy', :git => 'git://github.com/ataka/rubygems-format-dummy.git'

bundle install

一応、インストール・ログを残しておく。Mac の OS X 10.8.2。rbenv + ruby-2.0.0-p0。bundle コマンドでローカルにインストール。

$ bundle install --path vendor/bundle
Fetching git://github.com/ataka/rubygems-format-dummy.git
remote: Counting objects: 21, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 21 (delta 4), reused 21 (delta 4)
Receiving objects: 100% (21/21), done.
Resolving deltas: 100% (4/4), done.
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing erubis (2.7.0)
Installing highline (1.6.18)
Using json (1.7.7)
Installing mixlib-log (1.6.0)
Installing mixlib-authentication (1.3.0)
Installing mixlib-cli (1.3.0)
Installing mixlib-config (1.1.2)
Installing mixlib-shellout (1.1.0)
Installing net-ssh (2.6.7)
Installing net-ssh-gateway (1.2.0)
Installing net-ssh-multi (1.1)
Installing ipaddress (0.8.0)
Installing systemu (2.5.2)
Installing yajl-ruby (1.1.0)
Installing ohai (6.16.0)
Installing mime-types (1.23)
Installing rest-client (1.6.7)
Installing chef (11.4.4)
Using rubygems-format-dummy (0.0.1) from git://github.com/ataka/rubygems-format-dummy.git (at master)
Using bundler (1.3.5)
Your bundle is complete!
It was installed into ./vendor/bundle
$ rbenv rehash
$ bundle exec chef-solo -v
Chef: 11.4.4

あとがき

これは ruby-2.0.0 のバグなのかなぁ? それとも仕様なのかなァ? chef 側が fix すべきなのか、ruby 側が fix すべきなのか... さてさて困った。

No comments:

Post a Comment