Buildout
| zc.buildout | |
|---|---|
| Тип | средство автоматизации сборки |
| Разработчики | Jim Fulton и соавторы |
| Написана на | Python |
| Операционная система | Кроссплатформенное ПО |
| Последняя версия | 2.5.0 (11 ноября 2015 года [1]) |
| Репозиторий | github.com/buildout/buil… |
| Лицензия | 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 =<nowiki>
http://dist.plone.org/thirdparty</nowiki>
[part1]
recipe = recipe.name1
# ... другие данные
[part2]
recipe = recipe.name2
# ... другие данные
Встретив такой файл конфигурации, 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 = <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) и значения ключей в формате часть:опция=значение[7].
Примечания
- ↑ 2.5.0. Дата обращения: 10 декабря 2015. Архивировано 21 апреля 2016 года.
- ↑ 1 2 Официальный веб-сайт Buildout. Дата обращения: 2 августа 2012. Архивировано 29 июля 2012 года.
- ↑ Jacob Kaplan-Moss. Developing Django apps with zc.buildout (2009). Архивировано из оригинала 29 июля 2012 года.
- ↑ Buildout documentation, Buildout Recipes Архивировано 5 мая 2009 года.
- ↑ Ziade, 2008, pp. 167-168.
- ↑ 1 2 Ziade, 2008, pp. 169.
- ↑ 1 2 Buildout Quick Reference Card. Дата обращения: 2 августа 2012. Архивировано из оригинала 18 октября 2012 года.
- ↑ MinimalPlone4 на github
Ссылки
Литература
- 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.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.