Windowsでberks(Berkshelf)コマンドを実行した際、「”\xA0″ on Windows-31J (Encoding::InvalidByteSequenceError)」エラーが出るとき

現象

Windows上で、ChefDKをインストールし、Berksfileを作成し、

berks vendor cookbooks

のようにしたところ

> berks vendor cookbooks
Resolving cookbook dependencies...
Fetching cookbook index from https://supermarket.chef.io...
C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `encode': "\xA0" on Windows-31J (Encoding::InvalidByteSequenceError)
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `initialize'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `new'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-4.2.0/lib/ridley/chef/cookbook/metadata.rb:473:in `from_json'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-4.2.0/lib/ridley/chef/cookbook/metadata.rb:29:in `from_json'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-4.2.0/lib/ridley/chef/cookbook.rb:36:in `from_path'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cached_cookbook.rb:15:in `from_store_path'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:108:in `block in cookbooks'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:98:in `collect'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:98:in `cookbooks'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/resolver/graph.rb:8:in `populate_store'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/resolver.rb:73:in `resolve'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/installer.rb:175:in `install_from_universe'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/installer.rb:39:in `run'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/berksfile.rb:374:in `install'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/berksfile.rb:583:in `block in vendor'
        from C:/opscode/chefdk/embedded/lib/ruby/2.1.0/tmpdir.rb:88:in `mktmpdir'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/berksfile.rb:581:in `vendor'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:387:in `vendor'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:52:in `dispatch'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:27:in `execute!'
        from C:/opscode/chefdk/embedded/apps/berkshelf/bin/berks:5:in `<top (required)>'
        from C:/opscode/chefdk/bin/berks:43:in `load'
        from C:/opscode/chefdk/bin/berks:43:in `<main>'

というエラーが発生

対策

「C:\opscode\chefdk\bin\berks」 を開き、3行目に

Encoding.default_external = 'utf-8'

を追加する。

参考

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください