Git - Linux にソースビルドでインストール!

Updated:


当記事執筆時点、Git は 1.9.1 が最新ですが、Scientific Linux 6.5, CentOS 6.5 の標準リポジトリでは 1.7.1, Linux Mint 13 では 1.7.9.5 と若干古いです。

そこで、ソースを取得後ビルドしてインストールしてみました。

0. 前提条件

  • Scientific Linux 6.5 での作業を想定。
    (CentOS 等の Redhat 系ディストリビューションなら同様)
  • Git サーバとして運用することを想定。
  • 当記事執筆時点で、ソースは 1.9.0 までしか公開されていないので Git 1.9.0 をインストールすることにする。
  • クライント側から要求があった場合のみ Git サーバを起動するようにするために xinetd を使用する。
  • xinetd サーバ導入済みであることを想定。
  • Git リポジトリユーザディレクトリは “/var/lib/git/public_git” を想定。
  • ドキュメントはインストールしない。
  • すべて root ユーザで作用することを想定。
  • 既に Git がインストール済みなら、アンインストールしておく。(アンインストールしなくても問題はないが)

1. 事前準備

ビルドに必要にパッケージが未インストールならインストールしておく。

# yum -y install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel

2. アーカイブ取得

Downloads - git-core - Git - the stupid content tracker - Google Project Hosting」から最新バージョンの tar.gz ファイルをダウンロード&展開する。

# cd /usr/local/src
# wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz
# tar zxvf git-1.9.0.tar.gz

3. ビルド

以下のように ./configure, make, make install する。

# cd git-1.9.0
# make configure
# ./configure --prefix=/usr/local
# make all
# make install

4. インストール確認

バージョン情報を表示させて、インストールされたことを確認する。

# git --version
git version 1.9.0

Git サーバとして運用しないのなら、以降の作業は不要。

5. xinetd 設定ファイル作成

“libexec” ディレクトリの場所は configure 時の prefix 値なので注意。

File: /etc/xinetd.d/git

1
2
3
4
5
6
7
8
9
10
service git
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/local/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
}

6. xinetd 再起動

# /etc/rc.d/init.d/xinetd restart
xinetd を停止中:                                           [  OK  ]
xinetd を起動中:                                           [  OK  ]

7. Git リポジトリ作成

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

8. Git 用グループ作成

# groupadd git
# usermod -G wheel,git hoge
# chown -R root:git .

9. Git クライアント設定

前項までで Git サーバにリポジトリが準備できたので、クライアント側から各種 Git 操作が可能となっているはず。
Git の基本的な使用方法になるので、ここでは説明しない。

参考サイト

今回の方法と若干異なるが、以下のサイトも参考になる。


Git のバージョン違いが原因で影響が出ることはないでしょうが、やはり新しいほうが気分も良いので。。。

以上。





 

Sponsored Link

 

Comments