Zope 2.7.5/Plone 2.5.3→Zope 2.10.5/Plone 3.0.4

Zope2.7.5/Plone2.5.3からZope2.10.5/Plone3.0.4へバージョンアップした際、PloneSiteが追加できないという現象を経験しました。

Zopeをバージョンアップ

Zope2.10.5をダウンロードして、既存のZope環境に上書きするようにインストール。

$ ./configure --prefix=/usr/local
$ make
# make install

Plone3.0.4をインストール

2007年11月6日のエントリの通りにPloneプロダクトをインストールしてZopeを再起動。

PloneSiteを作成しようとすると

再起動してZMIからPloneSiteを追加しようすると、こんなエラーが画面に表示されました。

('No traversable adapter found', {'extension_profiles': ({'product': 'kupu', 'description': 'Extension profile for Kupu', 'for': , 'title': 'Kupu', 'version': 'kupu 1.4.6', 'path': 'plone/profiles/default', 'type': 2, 'id': 'kupu:default'},), 'args': (), 'base_profiles': (), 'default_profile': 'Products.CMFPlone:plone'})

event.logにはこんな内容が出ています。

------
2007-12-13T14:49:59 ERROR Zope.SiteErrorLog http://hogehoge:8080/manage_add
Product/CMFPlone/addPloneSiteForm
Traceback (innermost last):
  Module ZPublisher.Publish, line 119, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 42, in call_object
  Module Products.CMFPlone.factory, line 63, in addPloneSiteForm
  Module Shared.DC.Scripts.Bindings, line 313, in __call__
  Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
  Module Products.PageTemplates.PageTemplateFile, line 129, in _exec
  Module Products.PageTemplates.PageTemplate, line 89, in pt_render
  Module zope.pagetemplate.pagetemplate, line 117, in pt_render
  Module zope.tal.talinterpreter, line 271, in __call__
  Module zope.tal.talinterpreter, line 346, in interpret
  Module zope.tal.talinterpreter, line 854, in do_condition
  Module Products.PageTemplates.Expressions, line 211, in evaluateBoolean
  Module zope.tales.tales, line 696, in evaluate
   - URL: addSite
   - Line 62, Column 4
   - Expression: <PathExpr standard:'options/extension_profiles'>
   - Names:
      {'container': <App.ProductContext.__FactoryDispatcher__ object at 0xbd50298c>,
       'context': <App.ProductContext.__FactoryDispatcher__ object at 0xbd50298c>,
       'default': <object object at 0xbf4f15c0>,
       'here': <App.ProductContext.__FactoryDispatcher__ object at 0xbd50298c>,
       'loop': {},
       'nothing': None,
       'options': {'args': (),
                   'base_profiles': (),
                   'default_profile': 'Products.CMFPlone:plone',
                   'extension_profiles': ({'description': 'Extension profile for Kupu',
                                           'for': <InterfaceClass Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot>,
                                           'id': 'kupu:default',
                                           'path': 'plone/profiles/default',
                                           'product': 'kupu',
                                           'title': 'Kupu',
                                           'type': 2,
                                           'version': 'kupu 1.4.6'},)},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xbca649ac>,
       'request': <HTTPRequest, URL=http://hogehoge:8080/manage_addProduct/
CMFPlone/addPloneSiteForm>,
       'root': <Application at >,
       'template': <PageTemplateFile at /addSite>,
       'user': <User 'admin'>}
  Module zope.tales.expressions, line 217, in __call__
  Module Products.PageTemplates.Expressions, line 153, in _eval
  Module zope.tales.expressions, line 124, in _eval
  Module Products.PageTemplates.Expressions, line 83, in boboAwareZopeTraverse
  Module zope.traversing.adapters, line 161, in traversePathElement
   - __traceback_info__: ({'extension_profiles': ({'product': 'kupu', 'description': 'Extension profile for Kupu', 'for': <InterfaceClass Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot>, 'title': 'Kupu', 'version': 'kupu 1.4.6', 'path': 'plone/profiles/default', 'type': 2, 'id': 'kupu:default'},), 'args': (), 'base_profiles': (), 'default_profile': 'Products.CMFPlone:plone'}, 'extension_profiles')
TraversalError: ('No traversable adapter found', {'extension_profiles': ({'product': 'kupu', 'description': 'Extension profile for Kupu', 'for': <InterfaceClass Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot>, 'title': 'Kupu', 'version': 'kupu 1.4.6', 'path': 'plone/profiles/default', 'type': 2, 'id': 'kupu:default'},), 'args': (), 'base_profiles': (), 'default_profile': 'Products.CMFPlone:plone'})

さらにevent.logをよく見ると/usr/local/lib/python/zope/configuration/*.pyでエラーが多発している模様。ls で/usr/local/lib/python/zopeをみると、ここだけ日付が古い。怪しいなとおもって、この/usr/local/lib/python/zopeをがっつり削除、さらにZopeをインストールしなおしてインスタンスを再作成。

これでちゃんとPloneSiteが作れました。