本項ではCentOS環境にソースから最新バージョンのgitをインストールする手順についてまとめていきます。
サーバ環境
項目 | バージョン |
---|---|
CentOS | 7.6.1810 |
背景
gitをソースからインストールする背景としては、以下のようにCentOS上のデフォルトの yum reposiotryの情報では、gitのバージョンが1.8.3.1と古く最新バージョンの gitのコマンドを利用できないという課題があります。
そこで、本項ではこちらの情報を参考に最新バージョンの gitをインストールする手順を記載します。
yum info gitの結果
$ sudo yum info git
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* epel: mirror.pregi.net
* extras: ty1.mirror.newmediaexpress.com
* updates: ty1.mirror.newmediaexpress.com
Installed Packages
Name : git
Arch : x86_64
Version : 1.8.3.1
Release : 20.el7
Size : 22 M
Repo : installed
From repo : updates
Summary : Fast Version Control System
URL : http://git-scm.com/
License : GPLv2
Description : Git is a fast, scalable, distributed revision control system with an
: unusually rich command set that provides both high-level operations
: and full access to internals.
:
: The git rpm installs the core tools with minimal dependencies. To
: install all git packages, including tools for integrating with other
: SCMs, install the git-all meta-package.
依存関係のあるパッケージをインストール
ソースから gitをインストールするために、まずはじめに、依存関係のあるパッケージをインストールしていきます。
コンパイルに必要なパッケージをインストール
$ sudo yum install -y wget gcc
依存関係のあるパッケージをインストール
$ sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel
最新版のgitのtarballをダウンロード
こちら のサイトから git のtarballをダウンロードしておきます。
本投稿では、バージョン2.9.4をダウンロードします。
$ cd /usr/local/src/ # ソースファイルの保存先フォルダに移動
$ sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
--2019-06-18 23:26:41-- https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
mirrors.edge.kernel.org (mirrors.edge.kernel.org) をDNSに問いあわせています... 147.75.69.165, 2604:1380:1000:8100::1
mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.69.165|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5921866 (5.6M) [application/x-gzip]
`git-2.9.4.tar.gz' に保存中
100%[=============================================================================>] 5,921,866 105KB/s 時間 34s
2019-06-18 23:27:16 (172 KB/s) - `git-2.9.4.tar.gz' へ保存完了 [5921866/5921866]
$ ls -l
total 5784
-rw-r--r--. 1 root root 5921866 5月 10 2017 git-2.9.4.tar.gz
ソースから gitをインストール
続いて、ダウンロードしてきたtarballを解凍し、ソースからgitをインストールしていきます。
tarballの解凍
$ sudo tar -zxf git-2.9.4.tar.gz
$ cd git-2.9.4/
make step1
$ sudo make configure
GIT_VERSION = 2.9.4
GEN configure
make step2
$ sudo ./configure --prefix=/usr
configure: Setting lib to 'lib' (the default)
configure: Will try -pthread then -lpthread to enable POSIX Threads.
configure: CHECKS for site configuration
.
.
.
configure: creating ./config.status
config.status: creating config.mak.autogen
config.status: executing config.mak.autogen commands
make step3
$ sudo make all
* new build flags
CC credential-store.o
* new link flags
CC common-main.o
CC abspath.o
CC advice.o
CC alias.o
.
.
.
GEN bin-wrappers/test-svn-fe
GEN bin-wrappers/test-urlmatch-normalization
GEN bin-wrappers/test-wildmatch
GEN git-remote-testgit
make installでインストール
make installコマンドでインストールしていきます。
$ sudo make install
gitのバージョン確認
インストールした gitのバージョンを確認し、gitのバージョンが2.9.4になっていればソースインストールの完了です。
$ git version
git version 2.9.4
最新バージョンへのアップデート
最後にgitのインストール後に最新バージョンへアップデートしていきます。
最新バージョンの gitリポジトリをダウンロード
gitのインストール後は gitコマンドが使用可能になるので、git clone git://git.kernel.org/pub/scm/git/git.git で最新バージョンのリポジトリをダウンロードしていきます。
$ sudo git clone git://git.kernel.org/pub/scm/git/git.git
Cloning into 'git'...
remote: Counting objects: 270102, done.
remote: Compressing objects: 100% (64378/64378), done.
remote: Total 270102 (delta 203589), reused 269929 (delta 203497)
Receiving objects: 100% (270102/270102), 60.71 MiB | 330.00 KiB/s, done.
Resolving deltas: 100% (203589/203589), done.
Checking connectivity... done.
$ ls -l
total 40
drwxr-xr-x. 31 root root 24576 6月 18 16:07 git
make installの実行
前回の2.9.4をインストールした手順と同様に以下のコマンドを実行し、最新版のgitのインストールを行います。
$ cd git
$ sudo make configure
$ sudo ./configure --prefix=/usr
$ sudo make all
$ sudo make install
gitが最新バージョンに更新されていることを確認
最後に gitのバージョンを確認し、最新バージョンのgitになっていれば完了です。
※ 2019年6月時点の最新バージョンは 2.22.0のため、以下ではバージョン2.22.0になっています。
$ git version
git version 2.22.0.190.ga6a95cd
参考文献
- Git - Gitのインストール, https://git-scm.com/book/ja/v2/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB, Online; accessed 19-June-2019.
- Index of pub_software_scm_git, https://mirrors.edge.kernel.org/pub/software/scm/git/, Online; accessed 19-June-2019.
- git_git_ Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation_SubmittingPatches procedure for any of your improvements., https://github.com/git/git, Online; accessed 19-June-2019.