##1.前提
full installしてあること。
初期インストールで↓の[3]を選んでいないと、追加パッケージはインストール出来ない模様。
##2.サーバ設定(WebGUIでの作業)
ほとんど参考サイトと同じですが、FTPは使わない手順で簡素化してます。
###gitユーザの作成
メニュー -> アクセス -> ユーザとグループ
- グループ・・・「git」グループを作成
- ユーザ・・・「git」ユーザを作成
- プライマリグループを「git」
- ログインシェルを「csh」
- ホームディレクトリを「/home/git」
###SSHサーバ設定
メニュー -> サービス -> SSH
「有効」にする
##3.サーバ設定(コマンドでの作業)
まずはインストール
# pkg_add -r gitolite2
# su - git
gitユーザにスイッチしたら、下記ファイルを準備する。
set path=($HOME/bin $path)
続いて、ssh公開鍵作成及び管理リポジトリのチェックアウトを行う。
% ssh-keygen ※全て空エンターでOK
% mkdir bin
% git clone git://github.com/sitaramc/gitolite
% gitolite/install -ln
% source ~/.cshrc
% ln -s /home/git/.ssh/id_rsa.pub /home/git/.ssh/nas4free.pub
% gitolite setup -pk $HOME/.ssh/nas4free.pub
※公開鍵のファイル名がそのままユーザ名になる模様。
id_rsa のままは個人的に分かりにくかったので
nas4freeという別名を作成したけど、上の2行は
gitolite setup -pk $HOME/.ssh/id_rsa.pub
に置き換えてもOK。
% git clone git@localhost:gitolite-admin
##4.クライアントのアカウント作成
ここの手順はクライアントマシンの数だけ実施する。
###クライアント側の作業
とりあえずlinux(CentOS)でやってますが
他環境もほとんど同じと思われる。
# yum install -y git --enablerepo=epel
# git config --global user.name "tom"
# git config --global user.email "foo.bar@baz.com"
# ssh-keygen
# cat ~/.ssh/id_rsa.pub | ssh git@サーバ名 "cat > ~/gitolite-admin/keydir/tom.pub"
###サーバ側の作業
@developer = tom ←追記(クライアントが複数の場合はスペースで区切る)
repo gitolite-admin
RW+ = nas4free
repo testing
RW+ = @all
repo myrepos ←追記
RW+ = @developer ←追記
% cd gitolite-admin
% git add keydir/tom.pub
% git commit -a
% git push
###動作確認
$ git clone git@サーバ名:myrepos
エラー無くclone出来てたらOK
###その他
リポジトリはデフォルトで ~/repositories
に作られる。
ディスク容量の問題で場所を移動させてみた。
$REPO_BASE="repositories";
を
$REPO_BASE="/var/git/repos";
等に書き換えると移動出来るらしい。
ただ、当方の環境では、そもそも $REPO_BASE="repositories";
といった記述が見当たず、適当に $REPO_BASE="/var/git/repos";
等を
追記しても反映されず、仕方なくシンボリックリンクで対処。。。
% mv ~/repositories /mnt/git/repositories
% ln -s /mnt/git/repositories ~/repositories
##5.参考サイト
NAS4FreeにGitサーバを立ててみた
Gitサーバ gitolite をFreeBSDで使ってみる