Створення 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
Ось ніби і усе.