Edited at

最新版の Git をインストールする

More than 1 year has passed since last update.


TL;DR


Ubuntu


Ubuntu

$ sudo apt -y remove git

$ sudo apt -y install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev autoconf asciidoc xmlto docbook2x make gcc
$ wget https://github.com/git/git/archive/v2.15.1.tar.gz
$ tar -zxf v2.15.1.tar.gz
$ cd git-2.15.1
$ make configure
$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info
$ git --version


CentOS


CentOS

$ sudo yum -y remove git

$ sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel autoconf asciidoc xmlto docbook2X make gcc
$ sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
$ wget https://github.com/git/git/archive/v2.15.1.tar.gz
$ tar -zxf v2.15.1.tar.gz
$ cd git-2.15.1
$ make configure
$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info
$ git --version

※ 最新の Git のバージョンは、Releases · git/git を参照のこと


パッケージマネージャーの Git は古いことが多い

aptyum などの Linux のパッケージマネージャーでインストールした Git は、バージョンが古いことが多いです。


Ubuntu16.04

$ date

Tue Dec 5 21:40:00 JST 2017 # 2017 年 12 月 5 日現在
$ sudo apt -y update
$ sudo apt -y upgrade
$ sudo apt -y install git
$ git --version
git version 2.7.4


CentOS7

$ date

Tue Dec 5 21:40:00 JST 2017 # 2017 年 12 月 5 日現在
$ sudo yum -y update
$ sudo yum -y install git
$ git --version
git version 1.8.3.1

特に yum でインストールした Git は古いです。

Git のバージョンが古くても最低限のことは問題ないのですが、新しいバージョンで追加された機能を使いたいときには、やはり最新版をインストールしておきたいです。

たとえば、Git 2.8 以降では、user.useConfigOnly という設定が追加され、これを有効にすることで、ユーザ名やメールアドレスを設定していないときに、環境変数を使用して勝手にユーザ情報を参照してしまうことを防ぐことができます。

参考: リポジトリごとに user.name や user.email の設定を強制する

このような便利機能があるのですが、パッケージマネージャーからインストールした Git だと、古くて対応していません。user.useConfigOnly を設定しているから、うっかりユーザ名とメールアドレスを設定し忘れても大丈夫、と思っていたけど、実は、Git のバージョンが古くて環境変数のユーザ情報を参照してしまっていた…なんてことにもなりかねないです。

以降では、最新版を Git を、パッケージマネージャーからではなく、ソースからビルドしてインストールする方法について説明します。


既存の Git をアンインストール

既にパッケージマネージャーで Git をインストールしていた場合は、アンインストールします。


Ubuntu の場合


Ubuntu

$ sudo apt -y remove git



CentOS の場合


CentOS

$ sudo yum -y remove git



必要なライブラリをインストール

まずは必要なライブラリをインストールします。


Ubuntu の場合


Ubuntu

$ sudo apt -y install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev autoconf asciidoc xmlto docbook2x make gcc



CentOS の場合


CentOS

$ sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel autoconf asciidoc xmlto docbook2X make gcc

$ sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi


ソースコードをダウンロード

Git のソースコードをダウンロードします。以下の GitHub のページにアクセスします。

Releases · git/git

git_releases.png

最新版の Tarball のダウンロードリンクをコピーします。上記の画像の例では、v2.15.1 が最新版なので、v2.15.1 の tar.gz のリンクをコピーします。以降の説明では、v2.15.1 が最新版だと仮定します。

Tarball をダウンロードします。

$ wget https://github.com/git/git/archive/v2.15.1.tar.gz

カレントディレクトリに v2.15.1.tar.gz がダウンロードされます。


ビルドしてインストール

先ほどダウンロードした Tarball を展開します。

$ tar -zxf v2.15.1.tar.gz

展開されたディレクトリに移動します。

$ cd git-2.15.1

あとは、ビルドしてインストールすれば完了です。

$ make configure

$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info

バージョンを確認して、最新の Git のバージョンが表示されたら成功です。

$ git --version

git version 2.15.1


参考