Interested Article - Buildout

Buildout — средство автоматизации сборки для программного обеспечения с открытым исходным кодом , написанное на Python . Позволяет создавать, собирать и вводить в действие приложения из нескольких частей. Buildout помогает конфигурировать и в точности воспроизводить сборку программного обеспечения заданной конфигурации .

Buildout используют такие проекты как Django , Zope , Plone , , Pylons и др.

Термин «buildout» применяется также в отношении каталога, в котором развёрнута конфигурация некоторого приложения и содержится файл buildout.cfg , а сам скрипт buildout обычно находится в bin/buildout .

Возможности

Основные возможности Buildout следующие:

  • Создаёт изолированную среду исполнения приложений на Python (наподобие ).
  • Применяет язык описания зависимостей, похожий по синтаксису на язык INI -файлов. Файлы конфигурации описывают egg -файлы (формат пакетов программного обеспечения на Python, вроде RPM ), необходимые для сборки, и другие части ( англ. part ), например, библиотеки на других языках программирования, требующие компиляции.
  • Использует рецепты ( англ. recipe ) для расширения функциональных возможностей сборки, выполняя их по очереди .
  • Позволяет разрабатывать и вводить программное обеспечение в эксплуатацию, выпускать исходные коды приложения вместе с конфигурацией среды исполнения .

Конфигурация

Структура файла конфигурации может быть схематически представлена следующим образом :

 [buildout]
 parts = 
     part1
     part2
 develop =
     src/my.package1
     src/my.package2
 find-links =<nowiki>
     http://dist.plone.org/thirdparty</nowiki>
 [part1]
 recipe = recipe.name1
 # ... другие данные
 [part2]
 recipe = recipe.name2
 # ... другие данные

Встретив такой файл конфигурации, buildout будет по очереди рассматривать части, находить указанные в них рецепты, загружая по необходимости указанные в них пакеты с рецептами, запускать рецепты в соответствии с их точками входа (конфигурируются в setup.py пакета). Поиск ссылок на пакеты может быть расширен за счёт добавления списка URL в find-links . Опция develop даёт пути к пакетам, которые должны быть добавлены к набору библиотек в виде egg-файлов. Обычно это пакеты, находящиеся в разработке .

Опция extends указывает на другой файл конфигурации, который берётся за основу. Тем самым можно разбить конфигурационные файлы buildout на несколько частей. При этом опции можно изменять, присваивая (=), добавляя (+=) или убирая некоторые значения :

 [buildout]
 extends = mybase.cfg
 [part-one]
 key0 = rec0
 key1 +=
     rec1
     rec2
 key2 -= rec3

Файл mybase.cfg для этого примера может выглядеть так:

 [part-one]
 key0 = rec0 rec00
 key1 = rec0
 key2 = rec1 rec2 rec3

Результат:

 [part-one]
 key0 = rec0
 key1 = rec0 rec1 rec2
 key2 = rec1 rec2

Имеются и другие возможности, например, подстановка опций из других частей, клонирование части.

Пример

Пример простого файла конфигурации buildout.cfg для Plone :

 [buildout]
 parts = instance
 extends = <nowiki>http://dist.plone.org/release/4.1/versions.cfg</nowiki>
 [instance]
 recipe = plone.recipe.zope2instance
 eggs =
     Plone
     Pillow

Некоторые параметры командной строки

Режимы работы для скрипта buildout могут быть заданы параметрами командной строки :

-v Увеличить детализацию сообщений. Может быть использован несколько раз.
-q Уменьшить детализацию сообщений. Может быть использован несколько раз.
-U Не читать файл настроек buildout конкретного пользователя.
-o Режим офлайн . Запрещает устанавливать соединения с другими хостами для доступа к частям, пакетам и т. п.
-O Режим онлайн (действует по умолчанию).
-n Проверять доступность свежих версий пакетов (действует по умолчанию).
-N Не проверять обновления пакетов.
-c Альтернативный файл конфигурации (по умолчанию: buildout.cfg)

Из командной строки также можно задавать команды (например, buildout install) и значения ключей в формате часть:опция=значение .

Примечания

  1. . Дата обращения: 10 декабря 2015. 21 апреля 2016 года.
  2. . Дата обращения: 2 августа 2012. 29 июля 2012 года.
  3. Jacob Kaplan-Moss. (2009). Архивировано из 29 июля 2012 года.
  4. 5 мая 2009 года.
  5. , pp. 167-168.
  6. , pp. 169.
  7. . Дата обращения: 2 августа 2012. Архивировано из 18 октября 2012 года.

Ссылки

Литература

  • Tarek Ziadé. Expert Python Programming. — Packt Publishing Ltd., 2008. — 372 с. — ISBN 978-1-847194-94-7 . , pp. 168–177
  • Martin Aspeli. Professional Plone 4 Development. — Packt Publishing Ltd., 2011. — 516 с. — ISBN 9781849514422 . , pp. 38–44
  • Alex Clark. Plone 3.3 Site Administration. — Packt Publishing Ltd., 2010. — 240 с. — ISBN 9781847197047 .
Источник —

Same as Buildout