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=part1part2develop=src/my.package1src/my.package2find-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=rec0key1 +=rec1rec2key2 -=rec3
Файлmybase.cfg для этого примера может выглядеть так:
[part-one]key0=rec0 rec00key1=rec0key2=rec1 rec2 rec3
Результат:
[part-one]key0=rec0key1=rec0 rec1 rec2key2=rec1 rec2
Имеются и другие возможности, например, подстановка опций из других частей, клонирование части.
Пример
[править |править код]Пример простого файла конфигурацииbuildout.cfg для Plone[8]:
[buildout]parts=instanceextends=<nowiki>http://dist.plone.org/release/4.1/versions.cfg</nowiki>[instance]recipe=plone.recipe.zope2instanceeggs=PlonePillow
Некоторые параметры командной строки
[править |править код]Режимы работы для скрипта buildout могут быть заданы параметрамикомандной строки:
-v | Увеличить детализацию сообщений. Может быть использован несколько раз. |
-q | Уменьшить детализацию сообщений. Может быть использован несколько раз. |
-U | Не читать файл настроек buildout конкретного пользователя. |
-o | Режимофлайн. Запрещает устанавливать соединения с другими хостами для доступа к частям, пакетам и т. п. |
-O | Режимонлайн (действует по умолчанию). |
-n | Проверять доступность свежих версий пакетов (действует по умолчанию). |
-N | Не проверять обновления пакетов. |
-c | Альтернативный файл конфигурации (по умолчанию: buildout.cfg) |
Из командной строки также можно задавать команды (например, buildout install) и значения ключей в форматечасть:опция=значение[7].
Примечания
[править |править код]- ↑2.5.0 . Дата обращения: 10 декабря 2015. Архивировано 21 апреля 2016 года.
- ↑12Официальный веб-сайт 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.
- ↑12Ziade, 2008, pp. 169.
- ↑12Buildout 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.
- Википедия:Cite web (не указан язык)
- Википедия:Cite web (заменить webcitation-архив: deadlink yes)
- Википедия:Статьи без изображений (тип: свободное программное обеспечение)
- Страницы с неизвестными параметрами шаблона Программа
- ПРО:ИТ:Статьи по алфавиту
- ПРО:ИТ:Последняя правка: в прошлом году
- Страницы, использующие волшебные ссылки ISBN