gitosisのインストールと設定

gitosisのインストールのまとめ

かなりはまったので自分の復習も兼ねてまとめる

まず、自分のはまった点を挙げる
・gitosis-initを実行するとエラーがでる
最新版はpython2.6でもエラーは出ない。インストールしたバージョンが古い可能性がある。多少手間がかかるが
gitから持ってきてインストールする方法があるのでそちらの方法をお勧めする。
gitosis-* が邪魔している可能性もあるので一時的にどけといた方がいいかも
mv /usr/local/bin/gitosis-* /tmp


・repository以下に自分の望んだのが作成されない
/gitosis-admin.git/hooks/post-update の実行権限が無い可能性がある
chmod 755 /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update
で実行権限をつける

ぐらいかな。インストールと設定方法について解説します。
基本的にpost-updateに実行権限つけることをやって
ここのURLを参考にすればいい
http://github.com/jezdez/gitosis
sudo mkdir -p /usr/local/src
cd /usr/local/src
sudo git clone git://eagain.net/gitosis

インストールして

sudo python setup.py install

gitというgitosis専用のアカウント作る
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /srv/git \
git

ssh-keygenで作成し、gitosisに登録する
cd ~/.ssh
ssh-keygen
sudo -H -u git gitosis-init < id_rsa.pub

鍵の登録がうまくいくとこんな感じ
Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/

んで、フックスクリプトに実行権限をつける
こいつがpushした後に、repositories以下に作ってくれる
chmod 755 /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update

後はgit cloneして持ってくる
git clone ssh://git@127.0.0.1/gitosis-admin.git

後は必要に応じてディバックの有効化、プロジェクトの登録、ユーザが必要なら鍵の登録などを行う。このときうまくいかないって場合はgit-urlを間違えている可能性が高い

ディバックの有効化
[gitosis]
loglevel = DEBUG

プロジェクトの登録
[group teama]
writable = mobile
members = k32ru@ubuntu

鍵の作成、ユーザの登録
ls
gitosis.conf keydir
ssh-keygen -f hoge
ls
hoge hoge.pub
cp hoge.pub keydir
vi gitosis.conf
[group teama]
writable = mobile
members = k32ru@ubuntu hoge

後はこれをpushして有効にする
git push origin master

んで、mobileってrepositoryをつくるには
mkdir ~/repositories/mobile
cd ~/repositories/mobile
git init
touch README
git add README
git commit -m 'add README file'
git remote add push_srv git@127.0.0.1/mobile.git
git push push_srv master

参考URL
http://blog.nydd.org/2010/01/gitosis%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
ここの人の記事にはすごく助けていただきました。ありがとうございます。
他にも検索して引っかかったサイトを結構参考にしていたと思います。