Subversionでトラブったの巻
CentOS上で動かしていたTracが急にSubversionと連携できなくなったので、いろいろとメモ.
これまでx64機でSubversion1.5.5を入れていてTracとも連携していたのだけど、yumでgitを入れたら1.6.9のSubversionが入ってしまい。
Warning: Can't synchronize with the repository (Unsupported version control system "svn": "/usr/lib64/libsvn_ra_neon-1.so.0: undefined symbol: svn_log_changed_path2_create" ). Look in the Trac log for more information.
とか怒られるようになってしまった。
なので、yumで入れたsvn 1.6.9を消してみたのだが、今度は
/usr/lib/python2.4/site-packages/libsvn/_fs.so: wrong ELF class: ELFCLASS32
みたいな感じで怒られる。
いろいろ調べてみると
- Pythonは64bit版
- svn-pythonバインディングである/usr/lib/python2.4/site-packages/libsvn/*.soは32bit用
- 元から使っていた1.5.5は64bit版だけどsvn-pythonが無かった(なぜTracが動いていたのだろうか...)
ということらしいので、Subversion-1.5.5のソースディレクトリで
# make swig-py && make install-swig-py
とする。
これで、/usr/lib/python2.4/site-packages/svn.pthとかを適当に作って
/usr/local/lib/svn-python # 適宜変えてね
などと書いておけばsys.pathに入って見てくれるはず。
で、/usr/lib/python2.4/site-packages/libsvnが先に使われないようにディレクトリ名を変更しておけばよろしいはず。