b.l0g.jp     About     Archive     Feed

CentOS 5.5にsphinxをインストール

2/12のSphinx翻訳ハッカソンに行ってSymfony2のドキュメントの翻訳をさせていただこうと思っていたら、このところどっぷりはまっている仕事の方で呼び出されることになり、参加できなくなってしまった。予習として手元の環境にSphinxをインストールしたときのメモを残しておく。

といっても、パッケージ管理ツールを駆使(?)してあっという間。Sphinxのユーザ会のページには、MacOS XとUbuntuへのインストール方法は書いてあるが、CentOSへのインストール方法は書かれていないので、一応メモ。

yumでpythonのパッケージ管理ツールであるpipをインストール

[root@hoge ~]# yum install python-pip python-setuptools

pipでsphinxをインストール。現状では1.0.7がインストールされるようだ。

[root@hoge ~]# pip-python install sphinx

Downloading/unpacking sphinx

Downloading Sphinx-1.0.7.tar.gz (2.3Mb): 2.3Mb downloaded

Running setup.py egg_info for package sphinx

no previously-included directories found matching ‘doc/_build’

Downloading/unpacking Pygments>=0.8 (from sphinx)

Downloading Pygments-1.4.tar.gz (3.5Mb): 3.5Mb downloaded

Running setup.py egg_info for package Pygments

Downloading/unpacking Jinja2>=2.2 (from sphinx)

Downloading Jinja2-2.5.5.tar.gz (438Kb): 438Kb downloaded

(中略)

Installing sphinx-build script to /usr/bin

Installing sphinx-quickstart script to /usr/bin

Installing sphinx-autogen script to /usr/bin

Successfully installed docutils Jinja2 Pygments sphinx

Cleaning up…

[root@hoge ~]#

Sphinxユーザ会の「Sphinxをはじめよう」を見て、「プロジェクトの作成」まではあっさり完了。

yumでもsphinx(パッケージ名はpython-sphinx)をインストールできるが、@hidenorigotoさんのアドバイスで、pipを使ったインストール方法があることを知った。ありがとうございます。

2011年3月13日追記

epelリポジトリを有効にしていたからyumだけでインストールできた模様。epelリポジトリを追加していない場合は以下のコマンドで追加。


rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

※ パスの中で「5-4」はepelのバージョンによって変わる。

vjCommentPluginで色々はまる

symfonyでニュースの記事などにコメント欄を付けるプラグインとして、vjCommentPluginというのがある。これの設定でちょっとはまったので、メモ。

インストールや設定はReadmeに書いてある通りで、簡単。ログインしないとコメントできないようにするため、sfGuardPluginと連携させる機能が追加されているのだが、これが癖者。この機能を使うときには、app.ymlに以下の表記を追記する。

all:

vjCommentPlugin:

guardbind: true

restricted: true

Readmeには、frontend/config/app.ymlを編集しろと書いてあるのだが、これだとコメントを保存するテーブルの中身が、ログインしないとコメントできないように書き換わってくれない。plugin/vjCommentPlugin/config/app.ymlを上の通り編集する必要がある。

また、この状態で symfony doctrine:build すると、以下のエラーが出る。

SQLSTATE[HY000]: General error: 1005 Can’t create table ‘pjtransrate.#sql-15f0_b9’ (errno: 150). Failing Query: “ALTER TABLE comment ADD CONSTRAINT comment_user_id_sf_guard_user_id FOREIGN KEY (user_id) REFERENCES sf_guard_user(id)”. Failing Query: ALTER TABLE comment ADD CONSTRAINT comment_user_id_sf_guard_user_id FOREIGN KEY (user_id) REFERENCES sf_guard_user(id)

これは、sfGuardUserテーブルでは id (ユーザのID)を integer で定義しているのに、commentテーブル(コメントを保存するテーブル)の user_id は integer(4) で定義されており、その間にrelationを張ろうとしているためエラーになっているようだ。

参考 : http://d.hatena.ne.jp/zankey/20070411/mysql

plugins/vjCommentPlugin/config/doctrine/schema.yml の comment テーブルの user_id の type を integer に変更して、再度 doctrine:build するとうまくいく。

Subversionリポジトリへコミットするときの405エラー

Subversionリポジトリへうまくコミットできないときがたまにあるので、メモ。

コミットしようとすると、途中で以下のようなエラーが出ることがあります。
commit -m "あれこれ変更" -N (32 paths specified)
Sending        C:/Users/hoge/project/apps/frontend/modules/article/templates/indexSuccess.php
(中略)
Adding         C:/Users/hoge/project/cache/frontend/dev/template
RA layer request failed
svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '/svn/pjtransrate/!svn/wrk/be91e174-dd4b-124f-abbd-dd57636aa9ad/trunk/cache/frontend/dev/template'
「405 Method Not Allowed」が出るときは、フォルダ名やファイル名にSubversionで管理できない文字が含まれている、との情報があったりしますが、symfonyのcache/frontend/dev/templateの下は symfony cc した後は空なので、管理できない文字とやらが含まれているということはありません。
とりあえずcache/frontend/dev/templateを手動で削除してからコミットしたら、うまくいきました。
よく分かりませんが、うまくいったのでよしとしよう。