レンタルサーバで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にアクセスすると、問題なく動くはず。 で実際に動作しているのが以下のリンク。

  • - ttp://svn.nyarla.net/

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

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

nyarlaが大体

Scrapbox でコメントや意見を書く