Buildout

Поделись знанием:
Перейти к: навигация, поиск
zc.buildout
Тип

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

Разработчик

Jim Fulton и соавторы

Написана на

Python

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

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

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

2.5.0 (11 ноября 2015 года [1])

Лицензия

Zope Public License

Сайт

[www.buildout.org ldout.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 =
     dist.plone.org/thirdparty
[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 = 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].

Напишите отзыв о статье "Buildout"

Примечания

  1. [pypi.python.org/pypi/zc.buildout/2.5.0 2.5.0]
  2. 1 2 [www.buildout.org/ Официальный веб-сайт Buildout]
  3. Jacob Kaplan-Moss. [jacobian.org/writing/django-apps-with-buildout/ Developing Django apps with zc.buildout] (2009). [www.webcitation.org/69VyP4EWn Архивировано из первоисточника 29 июля 2012].
  4. [www.buildout.org/docs/recipelist.html Buildout documentation, Buildout Recipes]
  5. Ziade, 2008, pp. 167-168.
  6. 1 2 Ziade, 2008, pp. 169.
  7. 1 2 [www.sixfeetup.com/technologies/plone-content-management/quick-reference-cards/buildout-quick-reference-card Buildout Quick Reference Card]
  8. [github.com/collective/minimalplone4/blob/master/buildout.cfg MinimalPlone4 на github]

Ссылки

  • [pypi.python.org/pypi/zc.buildout/1.5.2 zc.buildout на PyPI]
  • [www.buildout.org/ Официальный веб-сайт Buildout]

Литература

  • 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.

Отрывок, характеризующий Buildout

– Но если он неблагородный человек?
– Он!… неблагородный человек? Коли бы ты знала! – говорила Наташа.
– Если он благородный человек, то он или должен объявить свое намерение, или перестать видеться с тобой; и ежели ты не хочешь этого сделать, то я сделаю это, я напишу ему, я скажу папа, – решительно сказала Соня.
– Да я жить не могу без него! – закричала Наташа.
– Наташа, я не понимаю тебя. И что ты говоришь! Вспомни об отце, о Nicolas.
– Мне никого не нужно, я никого не люблю, кроме его. Как ты смеешь говорить, что он неблагороден? Ты разве не знаешь, что я его люблю? – кричала Наташа. – Соня, уйди, я не хочу с тобой ссориться, уйди, ради Бога уйди: ты видишь, как я мучаюсь, – злобно кричала Наташа сдержанно раздраженным и отчаянным голосом. Соня разрыдалась и выбежала из комнаты.
Наташа подошла к столу и, не думав ни минуты, написала тот ответ княжне Марье, который она не могла написать целое утро. В письме этом она коротко писала княжне Марье, что все недоразуменья их кончены, что, пользуясь великодушием князя Андрея, который уезжая дал ей свободу, она просит ее забыть всё и простить ее ежели она перед нею виновата, но что она не может быть его женой. Всё это ей казалось так легко, просто и ясно в эту минуту.

В пятницу Ростовы должны были ехать в деревню, а граф в среду поехал с покупщиком в свою подмосковную.
В день отъезда графа, Соня с Наташей были званы на большой обед к Карагиным, и Марья Дмитриевна повезла их. На обеде этом Наташа опять встретилась с Анатолем, и Соня заметила, что Наташа говорила с ним что то, желая не быть услышанной, и всё время обеда была еще более взволнована, чем прежде. Когда они вернулись домой, Наташа начала первая с Соней то объяснение, которого ждала ее подруга.
– Вот ты, Соня, говорила разные глупости про него, – начала Наташа кротким голосом, тем голосом, которым говорят дети, когда хотят, чтобы их похвалили. – Мы объяснились с ним нынче.
– Ну, что же, что? Ну что ж он сказал? Наташа, как я рада, что ты не сердишься на меня. Говори мне всё, всю правду. Что же он сказал?
Наташа задумалась.
– Ах Соня, если бы ты знала его так, как я! Он сказал… Он спрашивал меня о том, как я обещала Болконскому. Он обрадовался, что от меня зависит отказать ему.
Соня грустно вздохнула.
– Но ведь ты не отказала Болконскому, – сказала она.
– А может быть я и отказала! Может быть с Болконским всё кончено. Почему ты думаешь про меня так дурно?
– Я ничего не думаю, я только не понимаю этого…
– Подожди, Соня, ты всё поймешь. Увидишь, какой он человек. Ты не думай дурное ни про меня, ни про него.
– Я ни про кого не думаю дурное: я всех люблю и всех жалею. Но что же мне делать?
Соня не сдавалась на нежный тон, с которым к ней обращалась Наташа. Чем размягченнее и искательнее было выражение лица Наташи, тем серьезнее и строже было лицо Сони.
– Наташа, – сказала она, – ты просила меня не говорить с тобой, я и не говорила, теперь ты сама начала. Наташа, я не верю ему. Зачем эта тайна?
– Опять, опять! – перебила Наташа.
– Наташа, я боюсь за тебя.
– Чего бояться?
– Я боюсь, что ты погубишь себя, – решительно сказала Соня, сама испугавшись того что она сказала.
Лицо Наташи опять выразило злобу.
– И погублю, погублю, как можно скорее погублю себя. Не ваше дело. Не вам, а мне дурно будет. Оставь, оставь меня. Я ненавижу тебя.
– Наташа! – испуганно взывала Соня.
– Ненавижу, ненавижу! И ты мой враг навсегда!
Наташа выбежала из комнаты.
Наташа не говорила больше с Соней и избегала ее. С тем же выражением взволнованного удивления и преступности она ходила по комнатам, принимаясь то за то, то за другое занятие и тотчас же бросая их.
Как это ни тяжело было для Сони, но она, не спуская глаз, следила за своей подругой.
Накануне того дня, в который должен был вернуться граф, Соня заметила, что Наташа сидела всё утро у окна гостиной, как будто ожидая чего то и что она сделала какой то знак проехавшему военному, которого Соня приняла за Анатоля.
Соня стала еще внимательнее наблюдать свою подругу и заметила, что Наташа была всё время обеда и вечер в странном и неестественном состоянии (отвечала невпопад на делаемые ей вопросы, начинала и не доканчивала фразы, всему смеялась).
После чая Соня увидала робеющую горничную девушку, выжидавшую ее у двери Наташи. Она пропустила ее и, подслушав у двери, узнала, что опять было передано письмо. И вдруг Соне стало ясно, что у Наташи был какой нибудь страшный план на нынешний вечер. Соня постучалась к ней. Наташа не пустила ее.
«Она убежит с ним! думала Соня. Она на всё способна. Нынче в лице ее было что то особенно жалкое и решительное. Она заплакала, прощаясь с дяденькой, вспоминала Соня. Да это верно, она бежит с ним, – но что мне делать?» думала Соня, припоминая теперь те признаки, которые ясно доказывали, почему у Наташи было какое то страшное намерение. «Графа нет. Что мне делать, написать к Курагину, требуя от него объяснения? Но кто велит ему ответить? Писать Пьеру, как просил князь Андрей в случае несчастия?… Но может быть, в самом деле она уже отказала Болконскому (она вчера отослала письмо княжне Марье). Дяденьки нет!» Сказать Марье Дмитриевне, которая так верила в Наташу, Соне казалось ужасно. «Но так или иначе, думала Соня, стоя в темном коридоре: теперь или никогда пришло время доказать, что я помню благодеяния их семейства и люблю Nicolas. Нет, я хоть три ночи не буду спать, а не выйду из этого коридора и силой не пущу ее, и не дам позору обрушиться на их семейство», думала она.