カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

レンタルサーバでSVN::Web

概要: さくらインターネットのスタンダードで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.49libの中身を~/perl/libに、binの中身を~/local/binに突っ込んだ。

とりあえず問題なく使えてはいる。

CGIとして動作させる

で、あとはSVN::Webを動作させたいディレクトリで

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にアクセスすると、問題なく動くはず。

で実際に動作しているのが以下のリンク。

http://svn.nyarla.net/

ただし、匿名でチェックアウトできなかったりする。 匿名でチェックアウトするには、Subversion付属のサーバ使うか、 Apacheモジュールを使うかのどちらかなので、共用サーバではムリ。

あと公開したリポジトリに何にも入ってなかったりする。 開発環境まだできてないよ。