Краткое руководство Buildout
Словарь
buildout - набор разделов (parts), которые определяют, как собрать приложение
part (раздел) - набор опций, которые позволяют собрать часть приложения
recipe (способ) - программа, используемая для создания частей, состоящих из опций
Введение в Plone Buildout
Вы можете добавить default.cfg в Ваш каталог $HOME/.buildout, чтобы внести настройки по умолчанию для любого раздела buildout
[buildout] eggs-directory = /path/to/home/.buildoout/eggs download-directory = /path/to/home/.buildoout/downloads zope-directory = /path/to/home/.buildoout/zope
ПРИМЕЧАНИЕ: Это только значения по умолчанию, они не переопределяют настройки в Вашем buildout.
Как начать работать с Plone Buildout:
Чтобы начать, Вы можете использовать коллекцию шаблонов ZopeSkel
$ sudo easy_install ZopeSkel $ paster create -t plone3_buildout
Вам будет задано несколько вопросов, касающихся вашего нового Buildout.
Итак, у вас есть свой buildout и Вы можете теперь использовать bootstrap для первоначальной сборки окружения:
$ cd path/to/buildout $ python2.4 bootstrap.py $ bin/buildout
Теперь у вас есть всё необходимое, чтобы запустить Ваш сайт (включая имена разделов zeoserver и экземпляра).
Если Вы используете Сервер хранилища Zope (Zope Storage Server):
$ bin/zeoserver start
Теперь Вы можете запустить Ваш экземпляр Zope:
$ bin/instance start
ПРИМЕЧАНИЕ: Несколько экземпляров обычно отличаются по номеру, с его увеличением, например instance1, instance2 и так далее.
Зарезервированные символы, которые Вы не должны использовать в именах разделов или настроек:
: $ % ( )
Настройки Buildout используют следующий синтаксис подстановки переменных:
${<part_name>:<option_name>} ${buildout:parts-directory}
Настройки, которые состоят из списка элементов заполняются с использованием пробелов или переносами строки на каждый элемент:
# base.cfg [part-one] option1 = foo bar baz option2 = foo bar baz
Настройки могут добавляться или удаляться с использованием += и -=. В следующем примере мы расширим файл конфигурации, описанный выше:
[buildout] extends = base.cfg [part-one] option1 += bang option2 -= bar
Версии
Версии могут быть закреплены несколькими способами:
[buildout] # используем наш список версий для связи versions = release-versions [release-versions] plone.recipe.plone = 3.1.5.1 archetypes.schemaextender = 1.0 SQLAlchemy = 0.4.6
[plone] # используем последнюю версию 3.1.x recipe = plone.recipe.plone < 3.2-dev
[instance] # используем archetypes.schemaextender от 1.0 до 1.4 # SQLAlchemy используем именно 0.4.6 eggs = archetypes.schemaextender >= 1.0, < 1.5 SQLAlchemy == 0.4.6
Использование командной строки Buildout
Синтаксис командной строки Buildout:
buildout [настройки и присваивания][команды[аргументы команд]]
ПРИМЕЧАНИЕ: Настройки и присваивания могут указываться в любой последовательности.
Команда bin/buildout имеет особые настройки. Используйте следующую команду, чтобы их посмотреть:
$ bin/buildout -h
Настройки (Options)
Вы можете добавить файл default.cfg в Ваш каталог $HOME/.buildout, чтобы установить некоторые пользовательскиие значения по умолчанию для любых разделов Buildout.
-v | Увеличение детализации логов на 10. Для большего увеличения используется несколько раз. (По умолчанию: 100) |
-q | Уменьшение детализации логов. Семантика, как у команды -v. |
-U | Не считывать файл настроек по умолчанию, расположенный в ~/default.cfg |
-o | Запускать в режиме 'offline'. Buildout не будет иметь доступа к внешним источникам для получения требуемых пакетов, разделов и т.п. |
-O | Запускать в режиме 'online'. Buildout будет иметь доступ к внешним источникам для получения требуемых пакетов, разделов и т.п. (Используется по умолчанию). |
-n | Запускать в режиме поиска обновлений. Buildout будет проверять каждый пакет на наличие новых версий (Используется по умолчанию). |
-N | Запускать в режиме без поиска обновлений. Buildout не будет проверять каждый пакет на наличие новых версий, однако, если сборка требует более новой версии, она будет получена. |
-t socket_timeout | Таймаут в n секунд попытки получения пакета (По умолчанию - нет.) |
-c config_file | Путь к альтернативной конфигурации (По умолчанию: buildout.cfg) |
-D | Использовать post mortem отладку, если buildout обнаружил ошибку. |
ПРИМЕР: Запуск в режиме без поиска обновлений, увеличить детализацию на 30 и установить таймаут после 60 секунд.
$ bin/buildout -Nvvv -t 60
Команды
Buildout имеет различные команды, наиболее полезная - install.
install [parts]
Если никаких разделов не задано, будут использоваться разделы, указанные в настройках buildout.
$ bin/buildout install instance
Присваивания
Присваивания дают Вам возможность установить настройки секций через командную строку. Присваивания используются в следующей форме:
section_name:option_name=value
Приведём несколько примеров.
Установка уровня детализации для секции buildout (эквивалент команды bin/buildout -vvvvv):
$ bin/buildout buildout.log-level=50
Включить отладку для экземпляра:
$ bin/buildout instance.debug-mode=on
Ссылки
Подробно о зависимостях:
http://peak.telecommunity.com/DevCenter/setuptools#declaring-dependencies
Официальная документация для Zope:
Раздел Cheese Shop (pypi) про Buildout:
http://pypi.python.org/pypi/zc.buildout
Учебник Мартина Аспели (Martin Aspeli) по Buildout на plone.org
http://plone.org/documentation/tutorial/buildout
Оригинал документа
По материалам http://www.sixfeetup.com
Перевод ООО «Комтет» komtet.ru