Berkshelf «berks install» не ищет U:

Я скачал Chef Development Kit и пытаюсь написать кулинарную книгу для шеф-повара. Я сделал berks init, а затем berks install. С указанием каких-либо зависимостей или без них при поиске U:. Что он ищет и почему? У меня была сеть U:, но теперь я удалил ее, чтобы попытаться остановить это, но я не вижу причин, по которым berkshelf все равно захочет заглянуть туда.

Изменить: следует, вероятно, упомянуть, что я нахожусь в Windows 7.

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>'`

person IBam    schedule 30.07.2014    source источник


Ответы (1)


Оказывается, у меня была та же проблема, что описана в Vagrant Berkshelf - Shelf Path?. Без моего ведома, мой HOMEDRIVE был установлен на U:, поэтому потребовалось переопределить это с помощью переменной среды BERKSHELF_PATH. Установка любой существующей папки позволила успешно завершить установку.

Для полноты:

set BERKSHELF_PATH=C:\Berks

Или, конечно, сделать это через панель управления, чтобы он сохранялся.

person IBam    schedule 30.07.2014