Git Sever 備忘録

CentOS7にたてる場合

最新のGitのインストール

yum の Base repo および epel repo からインストールするとgitバージョンが古いのでソースからインストールする

必要なパッケージをインストール

yum install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel
※gettext-devel をインストールすると依存関係でBase repoからgit本体がインストールされてしまう。
その場合、yum remove git で本体をアンインストールする。(gettext-develも同時にアンインストールされるが問題ない)

makeに必要なパッケージをインストール

yum install gcc make perl-ExtUtils-MakeMaker

ソースをダウンロードするためのwgetをインストール

yum install wget

git 本体をダウンロードする

Index of /pub/software/scm/git/

wgetでダウンロードのリン先を指定します。
cd /usr/local/src
wget ソースのリンク先

makeとinstall

tar xzfv ダウンロードしたtar
cd git-***
make prefix=/usr/local all
make prefix=/usr/local install

最新のgitがインストールされたことを確認します
git --version

git serverの設定

セキュリティを考慮し、以下のことを実現する
* git serverがgitコマンドを実行するのはgitユーザを使用する * gitユーザはインタラクティブシェルを提供しない

gitユーザの設定

gitユーザの作成

useradd git

gitユーザに公開鍵を登録する

su git
mkdir ~/.ssh

authorized_keysに開発者の鍵を登録
vi ~/.ssh/authorized_keys

bareレポジトリを作成する

gitユーザ外の所有権のディレクトリにレポジトリを配置する場合
mkdir -p /srv/git/repos

/srv/git/reposとした場合、このディレクトリの所有権を以下にする 例:) chown root:git /srv/git/repos
chmod 775 /srv/git/repos
reposディレクトリにSGID(set group id)の所有権を与える
chmod g+s /srv/git/repos