Buildout

Buildout
zc.buildout
Тип

средство автоматизации сборки

Разработчик

Jim Fulton и соавторы

Написана на

Python

Операционная система

Кроссплатформенное ПО

Последняя версия

1.5.2, 2.0.0a2 (11 октября 2010, 3 мая 2012 [1])

Лицензия

Zope Public License

Сайт

buildout.org (англ.)

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

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

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

Содержание

Возможности

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

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

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

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

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

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

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

[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[8]:

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

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

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

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

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

Примечания

Ссылки

Литература

  • 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



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Buildout" в других словарях:

  • buildout — noun The construction and implementation of a system …   Wiktionary

  • buildout — …   Useful english dictionary

  • Whistler Blackcomb — This article is about the ski resort. For other pages with the name Whistler, see Whistler (disambiguation). Whistler Blackcomb …   Wikipedia

  • Chesapeake Energy Arena — Loud City The Thunderdome Former names Ford Center (2002 20 …   Wikipedia

  • Morgantown Personal Rapid Transit — Info Locale Morgantown, WV …   Wikipedia

  • Tyco Electronics — Infobox Company company name = Tyco Electronics Ltd company type = Public (NYSE|TEL) company foundation = 2007 location = Pembroke Parish, Bermuda key people = Tom Lynch, CEO industry = Electronics products = Electronics, Electronic Components,… …   Wikipedia

  • Managed facilities-based voice network — A managed facilities based voice network, or MFVN, is a physical network owned and operated by a voice service provider that delivers traditional telephone service via a loop start analog telephone interface. MFVNs are interconnected with the… …   Wikipedia

  • North Main-Bank Streets Historic District — U.S. National Register of Historic Places U.S. Historic district …   Wikipedia

  • Wikipedia:Asistente para la creación de artículos/Artículos creados — Esta página está en una vitrina del museo de Wikipedia. Por favor, no la edites; ya no se usa …   Wikipedia Español

  • Chandler, Arizona —   City   Downtown Chandler …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»