mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages
※2018年9月15日より非力な環境でサーバを運用しているため、各ページの表示に時間がかかる場合があります。ご了承ください。(改良の予定あり)

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Debian 9 (Stretch) - Git インストール(ソースビルド)!

[ サーバ構築 ] [ Debian, Git, Linux ]

こんばんは。

Debian GNU/Linux 9 (Stretch) に Git サーバをソースをビルドしてインストールする方法についての記録です。

以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
(当然ながら、興味がなければスルーしてください)

0. 前提条件

  • Debian GNU/Linux 9 (Stretch) での作業を想定。
  • apt パッケージでインストールしていた git はアンインストール済みであることを想定。
  • Git 2.13.3 (当記事執筆時点で最新)を Git サーバとしてインストールすることを想定。
  • アーカイブ保存先は “/usr/local/src” を想定。
  • クライアントからアクセスがあった時だけサーバを起動するために xinetd を使用する。
  • root ユーザでの作業を想定。

1. 依存パッケージのインストール

1
2
# apt -y install xinetd libcurl4-gnutls-dev libexpat1-dev \
gettext libz-dev libssl-dev

2. アーカイブファイルの取得&展開

1
2
3
# cd /usr/local/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.13.3.tar.gz
# tar zxvf git-2.13.3.tar.gz

ちなみに、最新版のソースを使用したければ、以下のように取得すればよい。

1
# git clone https://github.com/git/git

3. ビルド&インストール

1
2
3
# cd git-2.13.2
# make prefix=/usr/local all
# make prefix=/usr/local install

4. インストールの確認

1
2
# git --version
git version 2.13.3

5. xinetd 設定ファイルの作成

デフォルトでは存在しないので作成する。

/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 の再起動

1
# systemctl restart xinetd

7. リポジトリの作成

作成先は /etc/xinetd.d/git の —base-path に指定されている /var/lib/git/ とした。(以下は “test.git” という Git リポジトリを作成する例)

1
2
3
4
5
# cd /var/lib/
# mkdir -p git/public_git/test.git
# cd git/public_git/test.git
# git --bare init --shared
Initialized empty shared Git repository in /var/lib/git/public_git/test.git/

8. Git 用グループの作成

1
# groupadd git

9. 権限の変更

リポジトリの所有者・所有グループを変更する。

1
# chown -R root:git .

10. リポジトリのディレクトリを確認

現状のリポジトリ内を確認してみる。

1
2
3
4
5
6
7
8
9
total 32
drwxrwsr-x 2 root git 4096 Jul 14 23:51 branches
-rw-rw-r-- 1 root git  126 Jul 14 23:51 config
-rw-rw-r-- 1 root git   73 Jul 14 23:51 description
-rw-rw-r-- 1 root git   23 Jul 14 23:51 HEAD
drwxrwsr-x 2 root git 4096 Jul 14 23:51 hooks
drwxrwsr-x 2 root git 4096 Jul 14 23:51 info
drwxrwsr-x 4 root git 4096 Jul 14 23:51 objects
drwxrwsr-x 4 root git 4096 Jul 14 23:51 refst

11. 動作確認

ここではクライアント側からの操作について説明はしないが、各種作業を行い問題がないことを確認しておく。
(git status, git add, git clone, git push, git pull etc.)

12. 参考サイト


以上。

Comments