Особистий інструметарій
Ви знаходитеся тут: Головна Документація Створення Buildout-a на Linux-i

Створення Buildout-a на Linux-i

В даній статті описується процес створення Buildout-a, який є одним із способів встановлення Плону.

Buildout - це інструмент, що дозволяє створювати середовище для розробки і кінцевої збірки пітонівського коду, в тому числі Zope і Plone, а також деяких інших продуктів і бібліотек.

Якщо простіше, то buildout - є простим та надійним способом встановлення Плону.

Для того, аби встановити buildout для Плону 3 нам необхідно мати встановлений python-2.4.4. Якщо ми створюємо buildout для Плону 4 то нам необхідний python-2.6.4 (надалі вважатимемо, що одна з цих версій python-у для необхідного нам Плону встановлена по замовчуванню).

Отже, розпочинаємо.

Першим кроком завантажуємо скрипт ez_setup.py, який дозволить завантажити та встановити setuptools та easy_install, необхідні для подільшої роботи з билдаутом. Запускаємо ez_setup.py встановленим python-ом:

$ python ez_setup.py

Тепер для отримання шаблонів Zope і Plone встановлюємо ZopeSkel за допомогою щойно встановленого easy_install скрипта:

$ easy_install -U ZopeSkel

Після цієї команди в під-папці bin нашого python матимемо скрипт paster. З його допомогою створюємо шаблон для майбутнього білдавта (прошу зауважити, що билдаут для Плону 4 створюється тим жеш темплетйтом, що і для Плону 3):

$ paster create -t plone3_buildout myproject

де, myproject - це ім'я проекту (директорія, де буде створений buildout). При виконанні цієї команди система попросить, щоб Ви ввели версію Плону, тому у випадку якщо вам необхідний Плон 3 вказуєте "3.3.5" і відповідно у випадку створення Плон 4 вказуєте версію "4.0", далі треба ввести ім'я адміністратора та пароль, також буде запит про ввімкнення чи вимкнення debug режим (відлагоджувальний режим роботи сервера, який використовується в процесі розробки) та інше.

Наступним кроком необхідно перейти в директорію створеного вами/нами :) проекту, в нашому випадку це myproject і запустити завантажувальний скрипт buildout-а:
$ cd myproject
$ python bootstrap.py

Цей крок необхідно виконати лише один раз. Він стягує необхідні пакети для збірки самого buildout-а.

Щоб розпочати роботу виконайте:

$ ./bin/buildout

Ця операція зчитує buildout.cfg і виконує різні його "частини".

Загалом, потрібно запускати ./bin/buildout кожного разу при внесенні зміні в файл buildout.cfg. Але, якщо Ви не хочете, щоб buildout затягував і дивився в інтернеті за оновленими версіями egg або завантажував інші вже існуючі архіви, Ви можете запустити його в автономному режимі:

$ ./bin/buildout -No

Для запуску Zope, виконайте:

$ ./bin/instance fg

В мене на цьому етапі виникла помилка, пов'язана з відсутністю пакету PIL (Python Imaging Library), що перешкоджала запуску інстанса. Для того, аби вирішити цю проблему, в файлі buildout.cfg дописую:

  • для билдаута Плону 3 у блоці eggs - PILwoTK:
# e.g. eggs = Plone my.package
eggs =
   Plone
   ${buildout:eggs}
   PILwoTK
  • для билдаута Плону 4:
[buildout]
parts =
productdistros
instance
zopepy
PIL

[PIL]
recipe = zc.recipe.egg
index = http://dist.repoze.org/legacy/simple/PIL/
eggs = PIL==1.1.6

# e.g. eggs = Plone my.package
eggs =
Zope2
Plone
${buildout:eggs}
PIL

Після цього перезбираю билдаут і перезапускаю інстанс:

$ ./bin/buildout -No
$ ./bin/instance fg

В принципі тепер мало б усе працювати :)

А для того, аби при кожному додаванні пакетів Вам не приходилось прописувати їх вручну, в buildout.cfg додаємо ще один блок

extensions =
    buildout.eggtractor

Ось ніби і усе.