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

Предыдущий: Предварительные условия
