Thu, 18 Nov 2004
お手軽 NAS + Linux であそべる「玄箱」ですが、いまのところノートラブルで動いているようです。
thttpd + Wiki はメモリは食わないですが、致命的に遅いので、
apache + mod_perl を試してみました。
が、こちらも若干早くなるものの、apache を立ち上げた段階でメモリを食いつぶしてしまいました(SWAP を使用しはじめる)。
LAN 実験用なので、それでもいいのですが、メモリを普段使わない apache なんぞに占領されるのはいただけないので、何か他に使えそうな類似製品がないかと探していたところ、ちょうど Zope の日本語版がリリースされた、というニュースをみたので、興味半分に入れてみました。
Zope が何か分からないまま(名前は聞いたことある程度)に入れてみたのですが、ZWiki とおまけの Blog を動かしてみたところ、起動時以外はそこそこのレスポンスで動作するみたいなので、インストールメモを。
必要なものはZope ジャパン - Zope 日本語版のページにあるとおりです。
玄箱に入れる際にひっかかった点をいくつか。
・前準備
玄箱を買ってみた(今更)-(1)でも書きましたが、grep を 上書きインストールして update しておきましょう(今回のインストールに影響があるかどうかは試してないので分かりませんが、configure で発生する問題を回避できるはずです)。
・Python 2.3.3
現在 Python の最新版は 2.3.4 のようですが、指示どおり 2.3.3 を入れてみました。
玄箱には Version2.0 が入っているので、これを壊したくなければ、別フォルダに入れる必要があります。
上のサイトをたどったところに書いてあるように、/opt/python2.3.3 にインストールすることで共存するには、
./configure --prefix=/opt/python2.3.3
のようにする必要があります。
システムパーティション(/)の下に入れるのがいやな方は、 /mnt/opt を作成して、シンボリックリンクを貼っておくとよいかと思います。 また、以降、python 用パッケージのインストーラ setup.py を実行する際には、フルパスで/opt/python2.3.3/bin/python と指定してやる必要がでてきます。
・Zope 2.7.3
python のパスを指定して
./configure --with-python=/opt/python-2.3.3/bin/python
を実行しますが、ここで dirname がないため、エラーとなります。 dirname は busybox に含まれていますが、リンクがないので、 作成する必要がありました。
#cd /bin
#ln -s busybox dirname
あとは問題なく make , make install できました。
/opt/Zope-2.7/bin/mkzopeinstance.py を実行すると zope instance home とやらの作成位置を聞かれます。
/mnt 以下にするか、/var/zope にするときはあらかじめ /mnt/var/zope を作成してシンボリックリンクを作成しておくと、
容量の問題を回避できると思われます。
私ははじめ、消してある説明のように、シンボリックリンクを利用して(/var/zope->/mnt/var/zope) にインストールしました(以下の説明はそのようになっています)。が、起動時 Product の読み込み時に Duplicate なんとかっていう "Problem" がレポートされてしまったので、/var/zope/var だけ /mnt 以下に移しました(懲りずにシンボリックリンク)。/var/zope/etc/zope.conf でも位置指定できるようですが、instance home は起動スクリプト等で指定されているので、結局ごまかしました。
ここまで完了したら、zopectl start で起動することを確認しておきましょう。
上記リンク先にもありますが、zope はユーザ zope を作成して起動します。そのため、/var/zope/log と /var/zope/var はユーザ zope がアクセスできるように、インストールスクリプト実行「後」に chmod 1777 する必要がありました(起動時にエラーになった)。
・Japanese Codecs
これは python のインストーラ、setup.py で問題なく入りました。
・Placeless Translation Service 1.0rc8
・ZMI Localizer
これらは展開して「Zope instance の Product ディレクトリ内」とやらにコピーするだけらしい、のですが、いきなり慣れない用語で戸惑いました。
なんのこっちゃと思いましたが、どうやら上記が指すのはさっき指定した instance home 以下の /var/zope/Products のことのようです。
/opt/Zope-2.7/skel 以下にも同じようなフォルダができますが、こっちはインスタンスの素?みたいですね(分かってない)。
ここに上記のアーカイブを展開してできる、[PlacelessTranslationService][COREBlog][ZMILocalizer] をディレクトリごとコピーします。
Zope のコントロールパネルからリブートするか、/var/zope/bin/zopectl stop で落として、再起動します。
これで、トップページ http://ZOPEホスト:8080/ の QuickStart が日本語化されま......せんでした(w
原因はブラウザの送っている情報で、言語が en-us になっていました(FireFox を英語版からアップデートしていたため?)。
あわてて jp を追加して、無事日本語の QuickStart が表示されました。
メモリ使用量ですが、以下のような感じです。(起動後、COREBLOG を表示した状態)
zope@YANEURA1:/$ free
total used free shared buffers cached
Mem: 62800 61544 1256 0 7196 22752
-/+ buffers/cache: 31596 31204
Swap: 257032 0 257032
追記。
reStructuredText で日本語を入れるとエラーになる
→象歩Blog (coreblog)にある input-encoding,output-encoding を
指定する方法で回避できるようです。