Zopeのダウングレード

Linuxで一度Zope2.9.4をインストールしたマシンに必要があって、Zope2.7.3をインストールしました。手順はいつもと同じでconfigureしてmake,make install。mkzopeinstance.pyでインスタンスを作成するところまでは行きましたが、runzopeで起動してくれません。

$ ./runzope
(中略)  
File "/usr/local/lib/python/AccessControl/Implemntation.py", line 98, in ?
    setImplementation("C")
  File "/usr/local/lib/python/AccessControl/Implementation.py", line 51, in setImplementation
    from AccessControl import ImplC as impl
  File "/usr/local/lib/python/AccessControl/ImplC.py", line 18, in ?
    from cAccessControl import rolesForPermissionOn, \
AttributeError: 'module' object has no attribute 'CAPI'

/usr/local/lib/python/AccessControl以下をみると、スクリプトに少しずつ違いがあります。どうやら、Zope2.9で入ったスクリプトとZope2.7で必要となるスクリプトに違いがあって、インスタンスが起動してくれないようです。
pythonの環境を一度綺麗にしてやる必要があるようです。

# rm -fr /usr/lib/python*
# rm -fr /usr/local/lib/python*
# rm -fr /usr/include/pytho*
# rm -fr /usr/local/include/pyth*
# rm -f /usr/local/bin/python /usr/bin/python
$ tar -zxvf Python-2.3.4.tgz
$ cd Python-2.3.4
$ ./configure --prefix=/usr --enable-unicode
$ make
# make install

これでpythonの環境が綺麗になりました。

さて、もう一回起動。

$ ./runzope
/usr/bin/python2.3: can't open file '/usr/local/lib/python/Zope2/Startup/run.py'

ん、ファイルがない?

$ ls -ld /usr/local/lib/python/Zope*
drwxr-xr-x    4 root     root         4096 10月 3 16:50 /usr/local/lib/python/Zope
drwxr-xr-x    3 root     root         4096 10月 3 16:50 /usr/local/lib/python/ZopeUndo

ふん、前の変な環境でつくったインスタンスだからかな。zopectlとrunzopeスクリプトの中を変更してあげます。

(変更前) ZOPE_RUN="$SOFTWARE_HOME/Zope2/Startup/run.py"
(変更後) ZOPE_RUN="$SOFTWARE_HOME/Zope/Startup/run.py"

これで動作しました。