Upgrade von Zope 2.5 zu 2.13.5

  • Hallo,

    Ich habe neue Aufgabe bekommen. Zope zu andere Server migrieren und gleichzeitig es upgraden.

    Alte Konfiguration:
    Server: Slackware 8.0.0 - 32bit System
    Zope: 2.5.0

    Neue Konfiguration:
    Server: Ubuntu 10.04 - 64bit System
    Zope: 2.13.5

    Ich habe vorher schon bisschen gegoogelt und Umzug angefangen:
    - Neue ZOPE 2.13.5 auf Ubuntu installieren
    - Data.fs* Dateien von alte Server zu neue rüberkopiert
    - Zope Instanz hat korrekt gestartet aber mehrere Abhängigkeiten war nicht gelöst
    - Ich habe alle Produkte von $INSTANCE/lib/phyton/Products/ auf alte Server zu $INSTANCE/Products auf neue Server rüberkopiert
    - Ich habe noch Fehlermeldungen über TAL gehabt
    - Ich habe auch alles von $INSTANCE/lib/python/TAL Ordner auf alte Server zu $INSTANCE/lib/python/TAL auf neue Server rüberkopiert

    Leider es hat immer noch nicht funktioniert. Bei start in Foregrund Modus habe ich folgende Fehlermeldung gekriegt:
    ---------------8<------------------------
    # ./zopectl fg
    /usr/local/Zope2/bin/runzope -X debug-mode=on
    2011-04-02 15:21:39 INFO ZServer HTTP server started at Sat Apr 2 15:21:39 2011
    Hostname: 0.0.0.0
    Port: 8080
    2011-04-02 15:21:39 INFO Zope Set effective user to "zope"
    /usr/local/Zope2/Products/PageTemplates/PageTemplateFile.py:21: DeprecationWarning: package_home is deprecated. import from App.Common instead
    from Globals import package_home, DevelopmentMode
    Traceback (most recent call last):
    File "/usr/local/zope-2.13.5/bin/runzope", line 9, in <module>
    load_entry_point('Zope2==2.13.5', 'console_scripts', 'runzope')()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/Startup/run.py", line 21, in run
    starter.prepare()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/Startup/__init__.py", line 86, in prepare
    self.startZope()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/Startup/__init__.py", line 259, in startZope
    Zope2.startup()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/__init__.py", line 46, in startup
    from Zope2.App.startup import startup as _startup
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/App/startup.py", line 38, in <module>
    import OFS.Application
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/OFS/Application.py", line 29, in <module>
    from App.ApplicationManager import ApplicationManager
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/App/ApplicationManager.py", line 39, in <module>
    from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    File "/usr/local/Zope2/Products/PageTemplates/PageTemplateFile.py", line 28, in <module>
    from PageTemplate import PageTemplate
    File "/usr/local/Zope2/Products/PageTemplates/PageTemplate.py", line 24, in <module>
    from TAL.TALInterpreter import TALInterpreter
    File "/usr/local/Zope2/lib/python/TAL/TALInterpreter.py", line 176
    def interpret(self, program, None=None):
    SyntaxError: assignment to None
    ---------------8<------------------------

    - Danach habe ich noch rest von $INSTANCE/lib/python zu neue Server rüberkopiert. Alte Fehlermeldungen war weg. Aber natürlich neue Fehlermeldungen war gezeigt:

    ---------------8<------------------------
    # ./zopectl fg
    /usr/local/Zope2/lib/python/xmlrpclib.py:67: DeprecationWarning: The xmllib module is obsolete. Use xml.sax instead.
    import urllib, xmllib
    /usr/local/Zope2/bin/runzope -X debug-mode=on
    /usr/local/Zope2/lib/python/xmlrpclib.py:67: DeprecationWarning: The xmllib module is obsolete. Use xml.sax instead.
    import urllib, xmllib
    Traceback (most recent call last):
    File "/usr/local/zope-2.13.5/bin/runzope", line 9, in <module>
    load_entry_point('Zope2==2.13.5', 'console_scripts', 'runzope')()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/Startup/run.py", line 19, in run
    opts = _setconfig()
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/Zope2/Startup/run.py", line 52, in _setconfig
    App.config.setConfiguration(opts.configroot)
    File "/usr/local/zope-2.13.5/lib/python2.6/site-packages/http://Zope2-2.13.5-py2.6.egg/App/config.py", line 52, in setConfiguration
    import Globals # to set data
    File "/usr/local/Zope2/lib/python/Globals.py", line 23, in <module>
    import Acquisition, ComputedAttribute, App.PersistentExtra, os
    ImportError: /usr/local/Zope2/lib/python/ComputedAttribute.so: wrong ELF class: ELFCLASS32
    ---------------8<------------------------

    Es handelt sich dieses mal um Inkompatibile Bibliotheken (32/64 bit).


    Hat jemand irgendwelche Idee, was soll ich machen um diese Problem zu lösen? Aktuelle Bibliotheken für meine System aussuchen oder alte Versionen von Bibliotheken aussuchen und manuell konfigurieren? Hat jemand schon vorher solche Upgrade durchgeführt?

    Danke in voraus für Ihre Hilfe.

    Gruß,
    Michael

  • Hallo,

    erstmal die Migration von Zope 2.5 auf 2.13 ist immens, ist es wirklich bloss eine pure Zope installation?

    Das Kopieren der Products kann man noch als ok ansehen, das Überschreiben von Python, bzw. Zope eigenen Packeten ist auf jeden Fall nicht sinnvoll und würde dir die Installation kaputt machen, hier sollte man von Hand im Buildout zu Zope die Abhängigkeiten versuchen aufzulösen.

    Inkompatibilitäten zwischen 32 und 64 und unterschiedlichen Python versionen kann bei kompilierten elementen auf C-Basis oder precompilitrten Python packeten auf jeden fall zu grossen schwierigkeiten führen.

    Meine Empfehlung, nochmal via Buildout nach und nach alle Abhängigkeiten geradeziehen und ggf. die Produkte dann an die neuen Packete anpassen, aber niemals in Zope selber rumpfuschen.

    Gruß Pumukel

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller