Персональные инструменты
Вы здесь: Главная Документация Руководства Управление проектом с помощью buildout Создание buildout для проекта

Создание buildout для проекта

Автор: Ирина Бессарабова Последнее изменение: 2010-11-09 09:53

Теперь мы готовы создать новую сборку (buildout). "buildout" - это директория, которая содержит все части проекта, включая Zope инстанс, исходники Plone, пользовательские настройки конфигурации и ваш собственный код.

Создайте buildout с помощью:

 

$ paster create -t plone3_buildout myproject

Вам нужно будет ответить на серию вопросов. Если вы хотите использовать существующую установку  Zope вместо того, чтобы загрузить и компилировать новую, укажите абсолютный путь к директории установки. Если вы не хотите, чтобы buildout загрузил Plone продукты ядра, вы можете указать существующую директорию, содержащую все продукты(только для Plone3.0/3.1 - примечание переводчика).  Plone 3 eggs все равно будут загружены, но как вы увидим позже, возможно разделить одну общую директорию eggs между несколькими сборками. Вам нужно будет ввести логин Zope администратора и пароль, и вы можете включить режим отладки (debug mode)  и настройку verbose security (используется для детального вывода ошибок, связанных с настройками безопасности - примечание переводчика) в процессе разработки.

Теперь зайдите в только что созданную директорию myproject и запустите скрипт загрузки buildout (buildout bootstrap script).  Замечание:  Для Plone 3.x необходим Python2.4

$ cd myproject
$ python2.4 bootstrap.py

Будет создано несколько директорий и скриптов и загружены последняя версия пакета zc.buildout. Этот шаг выполняется только один раз.

Чтобы приступить к работе немедленно, выполните:

$ ./bin/buildout

Эта команда читает файл buildout.cfg и выполняет его разнообразные части (parts), устанавливающие Zope, создающие Zope инстанс, загружающие и инсталлирующие Plone. Мы разберем содержание этого файла позже.

Вам нужно запускать ./bin/buildout снова каждый раз при изменении buildout.cfg. Если вы не желаете, чтобы buildout работал online и искала обновления версий для пакетов или загружал другие архивы, вы можете запускать его offline, в режиме не-обновления:

$ ./bin/buildout -No

Чтобы запустить в режиме отладке, с печатью ошибок и предупреждений в консоли, выполните:

$ ./bin/instance fg

Скрипт instance - аналог zopectl, который можно найти в стандартном Zope инстансе. Вы можете использовать ./bin/instance start для запуска Zope как процесса-демона. Этот скрипт используется также для запуска тестов:

$ ./bin/instance test -s plone.portlets

Команда:

bin/instance console

является эквивалентом bin/instance fg, однако ее запуск не включает явно режим отладки, а полагается на настройку debug-mode в buildout.cfg. Такой способ может быть полезен для запуска Zope в рабочем режиме с помощью команд контроля процессов-демонов  как supervisor.

Как только ваша установка buildout закончена и запущена, вам нужно создать Plone сайт. Зайдите в интерфейс управления Zope (ZMI) и в списке выбора "select type to add.." выберите Plone site (обычно ZMI доступен по адресу http://localhost:8080/manage - примечание переводчика). Заполните необходимые поля и сохраните. Теперь у вас есть  Plone сайт с ID, которое вы указали в форме (созданный Plone сайт доступен по адресу http://localhost:8080/id_сайта - примечание переводчика).

Директории в buildout

Перед тем как мы начнем детально разбирать buildout.cfg, давайте взглянем на директории, которые скрипт buildout создал для нас:
bin/
Содержит разнообразные выполняемые файлы, включая команду buidlout и instance.
develop-eggs/
Содержит егг-пакеты загруженные buildout. 
downloads/
Содержит обычные (не еггофицированные) пакеты такие как архив с исходным кодом Zope 
var/
Содержит log файлы (в var/log)  и файл с данными ZODB (в var/filestorage/Data.fs). Buildout никогда не переписывает эти файлы.
Если вы хотите импортировать файл .zexp, положите его в var/instance/imports.

Раньше нужно было класть этот файл в parts/instance/import,  но это папка пересоздается каждый раз при запуске bin/buildout, поэтому расположение импортных файлов было изменено.

src/
Изначально пустая. Вы можете положить свои собственные егг-пакеты  и сослаться на них в buildout.cfg. Об этом будет рассказано позже.
products/
Аналог директории Products инстанса (пишется с прописной буквы). Если вы разрабатываете Zope 2 продукты старого образца, поместите их сюда.
parts/
Содержит код и данные, которыми управляет buildout. В нашем случае, в директории будет локальная Zope установка, инстанс и исходный код Plone. Обычно вы не должны изменять что-либо в этой директории, так как buildout может уничтожить ваши изменения.

Вы можете зарегистрировать директорию buildout в репозитории исходного кода, чтобы разделить ее среди разработчиков. В этом случае, вам следует игнорировать директории bin/, eggs/, downloads/, var/ и parts/.  Каждый разработчик может запустить bootstrap.py, чтобы получить их заново. Вся конфигурация должна быть в buildout.cfg и весь пользовательский код в src/ или products/. 

 

Действия с Документом