Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2012-03-15

Установить Zope еще правильнее, через кастомный билдаут

Продолжение. Начало тут.
При установке продукта ExtFile я получил проблему

zope2 extfile product ImportError: No module named ZRDB.TM
гугление показало, что искомый модуль был вынесен в отдельный пакет, не устанавливаемый по умолчанию.


Factored out the Products.ZSQLMethods into its own distribution. The distribution also includes the Shared.DC.ZRDB code

Чтобы установить необходимое, надо сделать кастомный билдаут. Этим и займемся.

По инструкции (http://docs.zope.org/zope2/releases/2.13/INSTALL-buildout.html#creating-a-buildout-based-zope-instance), мы сделаем билдаут с нужным нам набором пакетов и включающий в себя инстанс (в предыдущем случае инстанс создавался спецкомандой после билдаутной установки).
Такой способ наверно удобен, если уже есть Data.fs и конфиг, надо только софт накатить или обновить. Хотя, если честно, я не очень понимаю, почему просто не поправить buildout.cfg в предыдущем варианте. Ну да ладно.

Понеслась.
C:\d\Zope>call setenv.cmd
mkdir custom\zope\inst
pushd custom\zope\inst
C:\d\Zope\custom\zope\inst>mkdir etc
mkdir log
mkdir var
python -murllib http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py>bootstrap.py

загрузчик есть, папки etc, var, log есть. Самое время в них поместить имеющееся содержимое, если в наличии. И создать конфиг билдаута:
vi buildout.cfg
[buildout]
parts = instance
extends = http://download.zope.org/Zope2/index/2.13.13/versions.cfg

[instance]
recipe = zc.recipe.egg
eggs =
  Zope2
  Products.ZSQLMethods
interpreter = zopepy
scripts = runzope zopectl
initialization =
  import sys
  sys.argv[1:1] = ['-C', r'${buildout:directory}\etc\zope.conf']

билдаутим
python bootstrap.py
bin\buildout

Если конфиг еще не сделан, теперь необходимо либо сделать новый конфиг из заготовки
copy c:\d\Zope\custom\zope\inst\eggs\zope2-2.13.13-py2.7.egg\Zope2\utilities\skel\etc\zope.conf.in etc\zope.conf
и отредактировать его, либо поправить уже имеющийся
vi etc\zope.conf
# меняем строки
%define INSTANCE c:\d\Zope\custom\zope\inst
debug-mode on
default-zpublisher-encoding utf-8

и можно запускать:
start bin\runzope.exe

Что еще?
У меня не захотел работать bin\zopectl.exe
который понадобился для создания учетки админа (это надо сделать, если базы Data.fs не было). При попытке создать учетку, ругался словами
>zopectl adduser admin 1234
ImportError: No module named Zope2

Пришлось сделать обертку bin\zopectl.bat
@set PYTHON=c:\d\Zope\custom\zope\inst\bin\zopepy
@set INSTANCE_HOME=c:\d\Zope\custom\zope\inst
@set CONFIG_FILE=%INSTANCE_HOME%\etc\zope.conf
@set ZDCTL=c:\d\Zope\custom\zope\inst\bin\zopectl.exe
"%ZDCTL%" %1 %2 %3 %4 %5 %6 %7
и запускать уже так
C:\d\Zope\custom\zope\inst>bin\zopectl.bat
zopectl> help
zopectl> adduser admin 1234
Created user: admin
zopectl> fg
zopectl> quit

По аналогии, можно сделать и запускатель bin\runzope.bat
@REM ~ C:\d\Zope\custom\zope\inst\bin\runzope.bat
@set INSTANCE_HOME=c:\d\Zope\custom\zope\inst
@set CONFIG_FILE=%INSTANCE_HOME%\etc\zope.conf
@set ZOPE_RUN=c:\d\Zope\custom\zope\inst\bin\runzope
"%ZOPE_RUN%" %1 %2 %3 %4 %5 %6 %7
В предыдущем варианте билдаута такие обертки создаются автоматически. А в этом нет. Лень разбираться — почему.

Вывод: билдаут это мощно но запутанно. Так или иначе, свою проблему (ImportError: No module named ZRDB.TM) с добавлением продукта ExtFile я решил. Правда, полезли другие ошибки, но это уже отдельная история.

На досуге можно еще попробовать еще один рецепт билдаута

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)