環境
- Archtecture: amd64
- Kernel: NetBSD 5.99.20(XEN3_DOMU)
- OS(userland): NetBSD 5.0.1
- git: 1.6.5.3
- python: 2.5.4
gitosisをインストールするためにはpythonとpy-setuptoolsが必要です。
これらはあらかじめpkgでインストールしておきます。以下がインストールされたパッケージです。
python25-2.5.4nb3
py25-setuptools-0.6c11
pkgのgitのバージョンが少し古かったのでソースからインストールします。
git-1.6.5.3.tar.bz2をダウンロードします。
$ tar jxvf git-1.6.5.3.tar.bz2
$ cd git-1.6.5.3
$ ./configure --prefix=/usr/local --with-perl=/usr/pkg/bin/perl
$ gmake
$ su
# gmake install
gitosisをインストールします。
$ git clone git://eagain.net/gitosis.git
$ cd gitosis
$ su
# python2.5 setup.py install
今回インストールしたgitosisのバージョン(commit)は dedb3dc63f413ed6eeba8082b7e93ad136b16d0d です。
git用のグループとユーザを作成します。
# groupadd git
# useradd -g git -m git
gitユーザでgitosisの初期化をします。管理者のclientのpublic key(id_rsa.pub)を準備します(/tmp/id_rsa.pubとする)
# su git
git$ gitosis-init < /tmp/id_rsa.pub
次にpost-updateのファイルパーミンションを修正して実行可能とします。
git$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
これでサーバ側の設定は終了です。
次にクライアント側からアクセスします。
client$ git clone ssh://gitserver.example.org/gitosis-admin.git
gitosis-adminがエラーなくcloneできたら成功です。
gitosisの管理はここから行います。
gitosis-admin/gitosis.conf
メインの設定ファイル
gitosis-admin/keydir/*
public keys
※ public key はsuffixが .pub でないと認識してくれません
プロジェクトの追加等はgitosis.confで行います。
ユーザ毎のアクセス許可もそのなかで行います。