すがブロ

sugamasaoのhatenablogだよ

Trac構築挫折(8)

前回の続き

前回(id:seiunsky:20070107:1168212936)の記事を書いたときに、おとなり日記で表示されていたサイト(id:isasaki:20070107)を参考にすることで、少し原因が見えた。

【トラブルシュート ****************************************************】
結果的には aps、aps-util、swigの連携を適切に行います。
(1)trac-adminで「Warning:You should install the SVN bindings」が出てるとtracのページが適切に表示できません
(2)「TracError: Unsupported version control system "svn"」とtracページに出力されます
(3)pythonからsvnのライブラリが参照できているか確認します
#python -c "import svn"
#python -c "import svn.repos"
(4)pythonのlib参照エラーの出力
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'svn' is not defined
(5)「TracError: ClearSilver not installed (No module named neo_cgi)」が出力したらclearsilverを再インストールします

ここの 「(3)pythonからsvnのライブラリが参照できているか確認します」python ワンライナーの二つ目は試していなかったので、こちらでも試してみる。

python ワンライナー再び

一番目は問題なかった(当たり前だ)。そして二番目。

python -c "import svn.repos"
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "/usr/local/subversion1.4.2/lib/svn-python/svn/repos.py", line 19, in ?
    from libsvn.repos import *
  File "/usr/local/subversion1.4.2/lib/svn-python/libsvn/repos.py", line 5, in ?
    import _repos
ImportError: /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so.0: undefined symbol: xmlCreatePushParserCtxt

エラーになった。
今までのsvn見つかりませんってヤツの原因はつまりこれだったのだろうか?

subversion の configure を見直す

上記でリンクしたおとなり日記(ソフトインストールの日記)を参考に、 subversion をインストールしなおしてみた。

./configure --prefix=/usr/local/subversion1.4.2 \
--without-berkeley-db \
--with-swig=/usr/bin/swig \
PYTHON=/usr/bin/python \
--enable-swig-binding=python \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/usr/local/apache2 \
--with-apr-util=/usr/local/apache2

Berkeley-DBは今のところ入れていないし、使う予定もない(ハズ)なので without にした*1
で、そのあと make する。

make && make install && make swig-py && make install-swig-py

っていうか、こうやって繋げることで一気に実行できたんだね。知らんかった。

subversion を入れなおして

pythonsubversion のリンクの張り方も今までとは変えてソフトインストールの日記を参考にして張ってみた。
で、確認してみる。

python -c "import svn.repos"
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "/usr/local/subversion1.4.2/lib/svn-python/svn/repos.py", line 19, in ?
    from libsvn.repos import *
  File "/usr/local/subversion1.4.2/lib/svn-python/libsvn/repos.py", line 5, in ?
    import _repos
ImportError: /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so.0: undefined symbol: xmlCreatePushParserCtxt

変わらず_| ̄|○
でも以前に比べれば原因が見えただけ前進したと言えるだろう。

結局

あのエラーの so ファイルが問題なのか。それとも xmlCreatePushParserCtxt っていうライブラリ?が無いから文句を言われているのか。
so ファイル自体はあるように見えるんだけどなぁ(´Д`)

ls -la /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so*
lrwxrwxrwx 1 root root     24  1月 9日 01:06 /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so -> libsvn_ra_dav-1.so.0.0.0
lrwxrwxrwx 1 root root     24  1月 9日 01:06 /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so.0 -> libsvn_ra_dav-1.so.0.0.0
-rwxr-xr-x 1 root root 848212  1月 9日 01:06 /usr/local/subversion1.4.2/lib/libsvn_ra_dav-1.so.0.0.0

これから先どう進めりゃいいんだ……(´Д`)

*1:まさかこれが一連の不具合の原因なのか……?