2011-03-31

Merlotをインストールして動かす

Mac OS Xで Merlot を動かすためのメモ。
Installing Merlot のドキュメントに書いてある通りで動くけど、せっかく日本語にしたので開発ブランチを使ってみましょう。
Google CodesにあるMercurialリポジトリをミラーして、VirtualEnvを組んで、buildoutを叩いたらインストール終わり。

一応コマンドリストだけでも書いておく:

$ hg clone https://merlot.googlecode.com/hg/ merlot
$ virtualenv --distribute --no-site-packages merlot
$ cd merlot
$ source bin/activate
$ python bootstrap.py
$ buildout

ここで、なぜかmechanizeのインストールに失敗することがある。エラーを見るにアーカイブをダウンロードしているときのレスポンスヘッダでContent-Lengthが"382313, 382313"みたいな感じでカンマ区切りで2個帰ってくるのがパースできないらしい。
RFC2616を見てみたところ、Content-Lengthヘッダは1*DIGITで書かなきゃいけないので、まあ、お行儀の悪いWebサーバーなのだろうけど、インストールプロセスが止まっちゃうのは困る。
なので、distributeのコードにパッチして無理やり通してしまった。virtualenvだと、こういう時にためらわずできていいね。

--- eggs/distribute-0.6.14-py2.7.egg/setuptools/package_index.py.orig     2011-03-26 15:00:28.000000000 +0900
+++ eggs/distribute-0.6.14-py2.7.egg/setuptools/package_index.py     2011-03-26 15:23:07.000000000 +0900
@@ -566,7 +566,10 @@
             bs = self.dl_blocksize
             size = -1
             if "content-length" in headers:
-                size = int(headers["Content-Length"])
+                try:
+                    size = int(headers["Content-Length"])
+                except ValueError:
+                    size = int(headers["Content-Length"].split(",")[0])
                 self.reporthook(url, filename, blocknum, bs, size)
             tfp = open(filename,'wb')
             while True:

で、パッチしたらもう一度buildoutを打つ。


$ buildout
$ merlot

merlotコマンドを打つと、grokフレームワークの簡易サーバが立ち上がるので、Webブラウザで 127.0.0.1:8080 にアクセスする。基本認証を聞かれるので、admin:adminで突破。このページはgrokフレームワークの管理画面らしくて、ホスティングするアプリケーションを追加、削除するためのもののよう。

"Name and create a new Merlot application" の所に適当に名前を入れて"Create"すると、インスタンスができる。名前はURLのトップディレクトリに使われるので、そこだけ気にすればよさそう。
とりあえずmerlotという名前で作ったことにする。

"Installed Applications" に新しくできたリンクをたどるとMerlotの世界へ。


こんな感じのトップページが来る。
この状態だと、rootディレクトリで打ったadminユーザーの基本認証を引き継いで動いているので、"ユーザー"タブから新しいユーザーを追加して、一旦ブラウザーを閉じてしまう。"ログアウト"はフォームで認証したときにCookieを消すだけなので、基本認証では効かない。次からのアクセスでは基本認証を使いたくないので、URLには 127.0.0.1:8080/merlot を使うこと。
この後は、"クライアント"を作って、"プロジェクト"を作って、"タスク"を作って、"ログ"を記録する。という流れになるんだけど、くわしくは次の記事で。

ところでWindowsを持っていないので動かしていないけど、誰か環境つくって手順もあるなら教えてください。

0 件のコメント: