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