Reputation: 11854
I've downloaded the Chef Development Kit, and I'm trying to write a chef cookbook. I've done berks init
, and then berks install
. With or without specifying any dependencies, it fails when looking for U:. What is it looking for, and why? I did have a network U:, but have now unmapped it to try and stop this, but I can see no reason why berkshelf would want to look there anyway.
Edit: Should probably mention I'm on a Windows 7 box.
Resolving cookbook dependencies...
Fetching 'mycookbook' from source at .
Fetching cookbook index from https://supermarket.getchef.com...
C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:242:in 'mkdir': No such file or directory - U: (Errno::ENOENT)
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:242:in 'fu_mkdir'
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:219:in 'block (2 levels) in mkdir_p'
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:217:in `reverse_each'
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:217:in `block in mkdir_p'
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:203:in `each'
from C:/opscode/chefdk/embedded/lib/ruby/2.0.0/fileutils.rb:203:in `mkdir_p'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:147:in `initialize_filesystem'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:46:in `initialize'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:15:in `new'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cookbook_store.rb:15:in `instance'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/resolver/graph.rb:6: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:174: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:371:in `install'
from c:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:143:in `install'
from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.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.0.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:37:in `load'
from C:/opscode/chefdk/bin/berks:37:in `<main>'`
Upvotes: 0
Views: 677
Reputation: 11854
It turns out that I was suffering the same problem as outlined in Vagrant Berkshelf - Shelf Path?. Unbeknownst to me, my HOMEDRIVE was set to U:, so oeverriding this with the BERKSHELF_PATH environment variable was required. Setting this to any existing folder allowed the install to complete successfully.
For completeness:
set BERKSHELF_PATH=C:\Berks
Or of course do it through the Control Panel so it persists.
Upvotes: 1