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"
これで動作しました。