CentOSにGitサーバーを構築してみました。

ファイル履歴の管理が面倒だなと思いつつ、Gitはめんどくさそうだなと放置していたのですが、いい加減放置できなくなったので重い腰を上げて動かしてみました。

ローカルリポジトリだけで済むだろうといわれそうですが、気分で端末を変えてしまう私はCentOSにGitサーバーを立てて管理したほうがやりやすいので。

まずはxinetdのインストール

# yum -y install xinetd

次にGitのコンポーネントをまとめてインストール
最新バージョンは他に出ているはずですが、今回はそこまで求めないのでデフォルトでインストールできるバージョンで構築します。

# yum -y install git git-daemon git-all
# git --version
git version 1.7.1

インストールの順番を間違えたっぽく、”/etc/xinetd/conf.d/”に”git”という設定ファイルが生成されなかったので書きます。

# vi /etc/xinetd.d//git
# default: off
# description: The git damon allows git repositories to be exported using \
#       the git:// protocol.

service git
{
        disable         = no      # <- ここを変更
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/libexec/git-core/git-daemon
        server_args     = --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
        log_on_failure  += USERID
}

xinetdの起動(再起動)

# service xinetd restart

gitサーバーにリポジトリを作成
注:途中のディレクトリが生成されてなかったらそれも生成すること

# cd /var/lib/git
# mkdir public_git
# mkdir public_git/test.git
# cd public_git/test.git
# git --bare init --shared
Initialized empty shared Git repository in /var/lib/git/public_git/test.git/

GitユーザーおよびGitグループの追加
リモートからのgitサーバーのアクセスにはgituserを使用する

# groupadd git
# useradd gituser
# passwd gituser         # 適宜パスワードを設定
# usermod -G git gituser
# chown -R root:git .

# vi /etc/passwd
gituser:x:501:502::/home/gituser:/bin/bash
↓
gituser:x:501:502::/home/gituser:/usr/bin/git-shell