gitサーバーをCentOS上に構築
今回はgitのサーバーが必要になったので構築してみます。
必要なものは
git
gitを使用するためのもの
git-daemon
gitサーバーをたてるためのデーモン
Git - git-daemon Documentation
git-all
スケーラブルな分散型リビジョン管理システム (全サブパッケージ)
Debian -- squeeze の git-all パッケージに関する詳細
$ yum -y install git git-all git-daemon
xinetd
initdの上位互換。
xinetd - Wikipedia
$ yum -y install xinetd
/etc/xinetd.d/gitファイルを下記の様に編集
# default: off # description: The git dæmon allows git repositories to be exported using \ # the git:// protocol. service git { disable = no socket_type = stream wait = no user = git 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 }
私の場合は git 専用のユーザー git を作成。
$ useradd -m -d /home/git -s /usr/bin/git-shell git
ここでgit-shellを指定するとgitユーザーで通常のログインはできなくなります。
こうするとログインしようとするとこんなエラーが発生します。
fatal: What do you think I am? A shell?
それで xinetd を起動します。
$ service xinitd start
git-daemonに接続できるようにhosts関連のファイルや
iptablesの設定も正しく行う必要があります。
gitデーモンが使用するport番号は
$ cat /etc/services | grep git
で調べられます。(デフォルトは 9418)
とりあえずサーバーに
$ cd /var/lib/git $ mkdir repo $ cd repo $ sudo -u git git init --bare ./test.git
そしてクライアントから取得。
$ git clone git//:server/var/lib/git/test.git
これで取得が可能にりました。