









[blog]
[ML]
[todo]
[CVS]
[bug]
[apache log]
[swiki log]
[statistics]
[map]
[man]
[info]
[アンテナ]
CvsWeb
いくつかのCGIやら、スクリプトやら、ツール類を公開しようかと思います。
公開も、結構めんどくさいので、まとめて CvsWebを使おうと思います。
関連サイトから、いろいろ情報収集をしてみたところ、実装系もいくつかあるよう
な感じです。
CvsWebでは、リポジトリの閲覧とファイルのダウンロードが可能です。
より一歩進んで、公開CVSサーバーを設置するには、セキュリティ上の懸案事項
もいくつもあるようで、そう簡単にはいかないらしい。

インストール手順(失敗作)
- 本家のサイトより、パッケージをDLする。
- tarを展開
- 動作に必要なパッケージがあることを確認。
- Perl 5以上
- RCS用ユーティリティ rlog, rcsdiff
- $ServerRoot/etcなパスに、cvsweb.confを移動する。
- cvsweb.cgiをCGI実行パスに設置
- cvsweb.cgiを開き、$config = $ENV{'CVSWEB_CONFIG'} || '/usr/local/web/apache/conf/cvsweb.conf';の行を編集。
- 私の場合、/etc/httpd/confにおいたので、$config = $ENV{'CVSWEB_CONFIG'} || '/etc/httpd//conf/cvsweb.confとした。
- cvsweb.cgiを編集し、perl実行パスを修正。
- cvswev.confの編集
- CVSROOTの編集
- # CVSROOTをDevelopmentのみ(他はコメントアウト)とし$cvstreedefault = 'Development';とした。
- これでうまくいくはずが、やはりだめであった。
ついでなので、MUSYAさんの改造版であるknu-cvswebを使うことにした

knu-cvswebのインストール(成功策)
- FTPで最新版をDLする。
- tar展開。
- 動作に必要なパッケージがあることを確認。
- Perl 5以上
- RCS用ユーティリティ rlog, rcsdiff
- とりあえず、展開したファイルをCGIが実行可能なパスに複写する。
- cvsweb.cgiを編集する。
- とりあえず先頭行をperlのあるパスに変更
- cvsweb.confファイルの設置パスを設定
- cvsweb.confの編集
- シンボル名とCVSリポジトリ設置パスの対応関係を設定
- シンボル名の解説用文字列を設定
- デフォルトで表示されるリポジトリを設定
- スタイルとかいろいろ設定する
- CVSリポジトリを初期化する。
- cvs -d リポジトリ設置パス initでリポジトリを初期化
- システムにcvsグループを追加(cvsグループがリポジトリアクセス可能とする)
- cd リポジトリ設置パス
- chgrp -R cvs . を実行
- chmod ug+rwx . CVSROOTを実行してアクセス権をcvsグループに与える。
- 注意事項
- cvsweb.cgiでexec("cvs", "-Rld", $cvsroot, "co", "-p", $revopt, $where);とある部分において、"-Rld"を"-rld"としないと実行できませんでした。

おすすめ事項
- CVSのリポジトリは、公開用と通常使用するもので分けるべき。(私の場合、/etc配下な管理ファイルもCVS管理しているので)
- CVS公開用リポジトリの更新時にいちいち cvs -d /hogeっていれるのは面倒なので、alias opencvs= "cvs -d /hoge"などとbashrcなファイルに設定すると吉。
- 公開用のCVSリポジトリのアクセス権限は、通常使用しているリポジトリとアクセス権限を分離すべき。たとえば、通常のCVSリポジトリは、cvsグループのみアクセスできるようにし、公開用のCVSリポジトリは、opencvsグループのみアクセス可能とするなど。

CvsWebとコミットメールで更新状況を把握する。
CVSのcommit mailを送信するように設定し、このメールで更新状況が把握できる
ようにしたいと思います。
そこで、まずcommit mailの設定から。
通常のCVSでは、contribの配下にlog.rbというファイルがあるそうでこれを変更
します。このサーバでは、Kondaraなので、/usr/lib/cvs/contrib/logの
ファイルを設定します。
このサーバーでは、qmailを使っているので、下記のように変更。
$mailcmd = "| /var/qmail/bin/qmail-inject";
:
:
if (MAIL) {
print MAIL "To:\t$users\n";
print MAIL "Subject:\tCVS update: $modulepath\n";
print MAIL "\n";
print MAIL "Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:" . sprintf("%02d", $min) . "\n";
print MAIL "Author:\t$login\n\n";
}
続いて、CVSROOTのloginfo を編集します。
CVSROOT自体が、CVS管理下にあるので、チェックアウトして、loginfoを編集。
- cvs checkout CVSROOT
- loginfoに下記の行を追加。
DEFAULT logコマンド配置パス %s -f CVSROOT/commitlog -m 送信先メールアドレス

関連サイト

Links to this Page
- CVS last edited on 24 March 2003 at 11:01 am
- Webサーバー構築 last edited on 7 August 2005 at 2:19 am