Подтвердить что ты не робот

Шеф-повар 'cookbook' в Berksfile vs 'зависит' в metadata.rb

В чем разница между добавлением кулинарных книг в Berksfile с использованием "кулинарной книги" и добавлением кулинарных книг в metadata.rb с использованием "зависит"? Например, если я добавляю в metadata.rb

depends 'nginx'

Мне нужно добавить его в Berksfile с помощью

cookbook 'nginx'

?

4b9b3361

Ответ 1

Berksfile имеет значение Berkshelf, а файл метаданных встроен в шеф-повар.

Добавление зависимостей в файл метаданных позволяет другим приложениям, таким как библиотекарь-шеф-повар или супермаркет, читать ваши зависимости.

Обратите внимание, что Berkshelf также считывает зависимости из метаданных, пока вы добавляете строку metadata в Berksfile.

Я настоятельно рекомендую указать все зависимости в вашем файле метаданных и использовать ваш Berksfile для указания того, где хранятся определенные кулинарные книги, если они недоступны в супермаркете (например, Github или локальный путь).

Ответ 2

Berksfile и metadata.rb имеют разные цели для решения и входят в картину на разных этапах жизненного цикла поваренной книги.

  • Berksfile предназначен для управления зависимостями для кулинарных книг. Рассмотрим случай, когда моя кулинарная книга использует кулинарию сообщества из супермаркет шеф-повара. В этом случае сначала мне нужно загрузить эту кулинарную книгу сообщества из супермаркета и загрузить ее вместе с моей собственной кулинарной книгой на сервер шеф-повара. Berksfile упрощает этот рабочий процесс для вас. С помощью одиночной команды (berks install) она загружает все зависимые кулинарные книги (и их зависимые кулинарные книги - транзитивные зависимости) из своих соответствующих источников (может быть из хранилища git или из супермаркета). С помощью одной единственной команды berks upload она загружает все эти кулинарные книги на сервер шеф-повара. Вам не нужно загружать их отдельно с помощью knife cookbook upload. Роль Berksfile, в частности, завершает цикл жизненного цикла поваренных книг.

  • metadata.rb передается шеф-клиентом, фактически конвергируя node. Он использует этот файл для загрузки всех необходимых кулинарных книг с сервера шеф-повара (при условии, что эти кулинарные книги теперь доступны на сервере шеф-повара, используя berkshelf или knife) для node, чтобы успешно завершить работу повара-шеф-повара.