さくらインターネットのスタンダードで SVN::Web を使ってみた。
最初無謀かと思った、というか十分無謀だったんだけどなんとかなったのでメモ。
ちなみに細かいところまで説明しきれない。
前提
まず前提として、Subversion の Perl バインドが有効になっていることと、CPAN が使えないとダメ。 そもそも Subversion がインストールできたなら CPAN も使えるはず。 ちなみにこれらについての説明はめどいので省略。
モジュールのインストール
次に shell で CPAN 起動して、
cpan > install SVN::Web
をしてみる。と大体モジュールが足りないとか言われるので、それらを突っ込む。で、たまにうまく入らないやつがあったりするんだけど、なんとかして入れる。
CPAN で入らない場合、自力で make
make test
すると原因が分かりやすい。たまに make test
は問題なく通るのに make install
で失敗するモジュールがあったんだけど、その場合、手動でコピーすれば問題なく使える。
SVN::Web のインストール
で、必要なモジュール入れ終わったら、もう一度
cpan > install SVN::Web
してみる。問題がない場合これでいけるはず。
ただ、自分の環境場合、テストは問題ないのになぜか共用領域に入れようとして、パーミッションがねーよといわれたので、~/.capn/build/SVN-Web-0.49
のlib
の中身を ~/perl/lib
に、bin
の中身を ~/local/bin
に突っ込んだ。
とりあえず問題なく使えてはいる。
CGI として動作させる
% svnweb-install
して、config.yaml を編集、index.cgi にアクセスすれば SVN::Web が使える。……といいたいところなんだけど、実は使えない。
そのまま CGI を動作させると、ライブラリがみつからない><みたいな事を言われる。これはたぶんユーザー領域にいれた Subversion にパスが通ってないのが原因。
Apache 側でパス通せればいいんだけど、やり方がわからないので、sh スクリプトで対処。
まず、オリジナルの index.cgi
を _index.cgi
にリネーム。次に index.cgi
を作成し、以下の内容を各環境に合わせて変更、保存する。
#!/bin/sh export LD_LIBRARY_PATH= [[ライブラリのパス]] export PERL5LIB= [[Perlモジュールへのパス]] /usr/bin/perl [[_index.cgiへのパス]]
でこの index.cgi にアクセスすると、問題なく動くはず。 で実際に動作しているのが以下のリンク。
- - ttp://svn.nyarla.net/
ただし、匿名でチェックアウトできなかったりする。匿名でチェックアウトするには、Subversion 付属のサーバ使うか、Apache モジュールを使うかのどちらかなので、共用サーバではムリ。
あと公開したリポジトリに何にも入ってなかったりする。開発環境まだできてないよ。