やりたいのは、DeltaVベースのサーバを立てて、できればViewCVSも入れときたい...
けどViewCVSはなぜかうまくいったことが無いので不安...できなければあきらめることにする.
xmlのログがかなり使えるのであんまり要らないし.
要るものリスト(インストール順)
- BerkeleyDB
- svnのバックエンドになる.1.1からはバックエンドの選択肢がだいぶ広がる模様
- Apache2 + apr
- DeltaVのためにはApadhe2も必要らしい
- python
- ViewCVSはこいつで動いている.
- swig
- ViewCVSへのインターフェイスを開くために要る模様
- subversion
- これが本命.svn://で動かすならほぼこれのみでいいはずだけど...
- ViewCVS
- こいつがなぜかうまくいったためしがない. こいつ自身じゃなくてsvnのオプションが入らないんだけど.
BerkeleyDB
/usr/ports/databases/db42にある.-nocriptでもいいのかもしれない.make; make installで普通に入る模様.
Apache2 + apr
最低限の条件は、- MOD_DAVが入っていて、MOD_DAV_SVNを登録できること
- 上記BerkeleyDBを使用すること
なので、最低限を考えれば、WITH_DAV_MODULES=YESとWITH_BERKELEYDB=DB42の2つははずせない.
で、make WITH_DAV_MODULES=YES WITH_BERKELEYDB=DB42 してみるとopenssl,expatでエラーが発生する.
それぞれ下記の作業で入れなおすと何とかうまくいった.
で、そのたびにmakeをやり直してmake install した.本当はmake clean もすべきだろうけど.
openssl
どうもopensslのバージョンが合っていないそうなので、入れなおす.whereis opensslで探して今有るのを削除してから/usr/ports/seculity/opensslでmake;make install.
# なんて大雑把な...やっちゃまずいっしょ.libとか残るし... < 社内サーバなので無茶してる
# /stand/sysinstallで削除すれば良いのに.
expat
/usr/ports/textproc/expat2でmake deinstall; make installPHP
phpinfo()でapacheの設定を確認するためにPHPを入れてみる.軽快なJavaでは「変なもの」呼ばわりされていたけど。
本気で使うわけではないのでオプションはほとんど無し. 本当に使うときには入れなおさないと.
/usr/ports/lang/php5でmakeすると設定メニューが立ち上がる. ちょっと感動.
APACHE2のみ有効にしてOK.
で、make install.
/usr/local/etc/apache2/httpd.confに、
を追記して、
AddType application/x-httpd-php .php
とだけ書いたファイルを/usr/local/www/data以下に.phpで作って、
>?php phpinfo(); ?<
apachectl restartする.
で、ブラウザで開いてみて設定を確認.
python
有るけど古かったので再インストール./usr/ports/lang/pythonに入ってmake; make deinstall; make install
なんでmake reinstallが効かないんだろう?古いのがあるからいやとかいわれてしまった.
swig
/usr/ports/devel/swig13に入ってmake; make install .楽ちん、楽ちん.
subversion
いよいよ本番. ここまで長かった...(既に半日過ぎている)Apache2用のDAV_SVNが要るので、WITH_MOD_DAV_SVNは必須. このオプションにはWITH_APACHE_APRも含まれているとの事.
pythonへのインターフェイスもいるが、これはsubversion-pythonという設定済みのものがあるらしい.
で、 /usr/ports/devel/subversion-python に入って make -D WITH_MOD_DAV_SVN としてみる. 通った!(実はここまでに何回か失敗し、1度apacheを入れなおしたりもしたんだけど...)
で、make install . 問題なし.
ようやくインストールはすんだのでレポジトリを作る.
まず、リポジトリは/usr以下にするか/home以下にするか、だけど.~svn/repos以下につくるのがいいかなぁ、と思っている.
/usr以下は大きめに取ってたんだけど(7G. homeは4G)いまやどちらも4Gずつしかない.
基本社内サーバなので/usr/local/wwwはどんどん太るだろうし. てなわけで、/home/svn/reposに決定.
で、svnユーザになって、mkdir ~/repos でレポジトリ置き場を作って svnadmin create /home/svn/repos/testした.
で、次はapacheの設定.rootになってvi /usr/local/etc/apache2/httpd.conf.
mod_dav.soのLoadModuleのコメントをはずす. mod_dav_svn.soはインストーラが書いてくれる.
つぎに、/etc/groupを編集してsvnグループにwwwを追加する.
1002は実際のGIDで、複数登録したければwww,user1,user2のようにカンマでつないでいく.
svn:*:1002:www
本当はwwwユーザでwebdavリポジトリを作るべきかも知れない.
で、httpd.confの設定. 作ったリポジトリをDeltaVで公開し、読み取りはフリーで書き込みはベーシック認証を使って行う.
意味は以下のとおり.
<Location /svn>
DAV svn
SVNParentPath /home/svn/repos
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svn/repos/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
あとは、/home/svn/reposでhtpasswd (-c) passwd user のようにしてパスワードを追加していく.
<URLが/svn以下の設定>
DAVフォルダで、バックエンドはsvn
/home/svn以下のリポジトリを/svn/repos以下に展開する
ベーシック認証を行う
認証の名前(ダイアログに出るやつ)は"Subversion repository"
認証ファイルは /home/svn/repos/passwdを使う
<次のプロトコル以外は制限 GET PROPFIND OPTIONS REPORT>
有効なユーザを要求する
</制限終わり>
</URL/svn以下の設定終わり>
おつかれした.
ViewCVS
こいつはsourceforgeから取ってこないといけないらしい./usr/local/src/あたりでcvsを使って、
cvs -d:pserver:[email protected]:/cvsroot/viewcvs login
cvs -d:pserver:[email protected]:/cvsroot/viewcvs co viewcvs
で取得.インストール先を聞いてくるので/usr/local/viewcvsあたりにおいてその中のwwwに入り、
cp -R cgi /usr/local/www/cgi-bin/viewcvs
などとしてコピーする.
で、設定. 設定ファイルはインストールしたフォルダにviewcvs.confという名前であるので、distを取っておいて編集.
それぞれコメントがあるので、コメントの直下に設定を書いていく.どこでも効きそうだけど.
デフォルトで効いているcvs_rootsを切っておいて、root_parentsは/home/svn/repos : svnに設定.
default_root はひとまず test としておく.
結果、以下の3点がそれぞれの場所の変更点となる
コメントアウト:
追加:
#cvs_roots=/home/cvs
値を変更:
root_parents = /home/svn/repos
以上で完了.
default_root = test
つかれたー、丸一日かかってしまった...