server-memo.net

CentOS7にgitをソースからインストール

      2016/01/22

CentOS7へgitの最新版をソースからインストールした際のメモです。

yumでインストールしたgit

CentOS7にyumでgitをインストールしたのですが、バージョンが1.8.3.1と最新ではないので、ソースから最新版をインストールすることにしました。

yumでインストールしたgitのバージョン

「git --version」コマンドでインストールされているgitのバージョンが確認できます。

# git --version
git version 1.8.3.1

ソースからのgitインストール

インストール手順は公式サイトの手順を参考にしています。

事前準備

gitインストールに必要なパッケージ

gitをインストールするために必要なパッケージをインストールします。

  • curl-devel
  • expat-devel
  • gettext-devel
  • openssl-devel
  • zlib-devel
  • perl-ExtUtils-MakeMaker  <--github公式の手順にはないけど必要です
パッケージのインストール
# yum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel perl-ExtUtils-MakeMaker

※ソースからコンパイルするので、make、gcc、autoconf等も必要です。インストールされていない場合はあわせてインストールしてください。

gitのアンインストール

すでにgitがyum等でインストールされている場合は、それを削除します。
インストールされていない場合は、ここの作業は必要ありません。

# yum remove git

ソースのダウンロード

gitのソースは下記のURLからダウンロードできますので、使用したいバージョンのソースを探してダウンロードしてきます。

ダウンロードサイト

https://www.kernel.org/pub/software/scm/git/

wgetでダウンロード

今回は2015.05.12時点での最新版(2.4.0)を使用したかったので、wgetでダウンロードを行いました。

# wget https://www.kernel.org/pub/software/scm/git/git-2.4.0.tar.gz

gitインストール(コマンドのみ)

gitのコマンドのみをインストールするのは非常に簡単です。

解凍

ダウンロードしてきたソースファイルを解凍します。

# tar xzfv git-2.4.0.tar.gz

コンパイルとインストール

「/usr/local/bin」にインストールしたかったので、configureの際にprefiexを指定しています。

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

gitのバージョン確認

「git --version」コマンドでインストールされたgitのバージョンを確認すると、無事最新版のgitがインストールされていました。

# git --version
git version 2.4.0

以上で、gitコマンドのみのインストールは完了です。

gitのドキュメントインストール

gitのmanとかもあったほうが便利だと思ったので、公式ページを参考にドキュメント関連もインストールしようと思ったのが苦難始まりでした・・・

man等のドキュメントをインストールする場合公式サイトのドキュメントを見ると、下記のように記述されています。

「ドキュメントを doc、html、info 形式等で出力したい場合は、以下の依存ライブラリも必要になります。」
# yum install asciidoc xmlto docbook2x

これだけを見れは非常に簡単そうなのですが、そう簡単にはいきませんでした・・・

必要パッケージのインストール

「asciidoc」「xmlto」の2つは簡単にyumでインストールすることが出来ますが、「docbook2x」は外部リポジトリである「epel」を使用してインストールする必要があります。

また、公式サイトでは「docbook2x」と表記されていますが「docbook2X」(Xは大文字です)としてインストールする必要があります。
あと、「docbook-utils」も必要ですので、あわせてインストールする必要があります。

epelの外部リポジトリを使用するためには事前に設定が必要です。設定されていない場合はこちらのページに設定方法をまとめていますので、参考にしてみてください。

# yum install asciidoc xmlto 
# yum install --enablerepo=epel docbook2X docbook-utils

リンクの設定

「docbook2X」「docbook-utils」については、インストールしただけではgitのコンパイル時にエラーが出てしまいますので、下記の作業を行う必要があります。

# ln -s /bin/db2x_docbook2texi /bin/docbook2x-texi
※リンクの設定について

この部分ではまっている人がいたら参考になるかと思い、ログともに経緯を残しておきます。

最初は、「docbook2x-texi: コマンドが見つかりません」とメッセージ(エラーログ1参照)が出力されていたので、似たようなコマンド名を検索し「ln -s docbook2texi docbook2x-texi」といったようにリンクを張って、最コンパイルしたのですが、今度は「Usage: jw [<options>] <sgml_file>」といったメッセージ(エラーログ2参照)が出力されてコンパイルがとまってしまいました。

ここで、かなり悩んだのですがgoogle先生に聞くとこちらのページを教えてくれたので、解決できました。

エラーログ1

「docbook2x-texi: コマンドが見つかりません」に関するエラーログ

make[2]: ディレクトリ `/root/git-2.4.0' から出ます
DB2TEXI user-manual.texi
/bin/sh: 行 1: docbook2x-texi: コマンドが見つかりません
make[1]: *** [user-manual.texi] エラー 127
make[1]: ディレクトリ `/root/git-2.4.0/Documentation' から出ます
make: *** [info] エラー 2
エラー内容2

「Usage: jw [<options>] <sgml_file>」に関するエラーログ

make[2]: `GIT-VERSION-FILE' は更新済みです
make[2]: ディレクトリ `/root/git-2.4.0' から出ます
DB2TEXI user-manual.texi
Usage: jw [] 
where  are:
-f|--frontend : Specify the frontend (source format)
(default is docbook)

解凍・コンパイル・インストール

ドキュメントに必要なパッケージのインストールと、リンクの設定さえ終わってしまえば後の作業は非常に簡単です。

公式サイトの手順どおりにgitのソースを解凍し「configure」「make」「make install」と作業を進めていくだけす。

※インストール先を「/usr/local/bin」にしたかったので、configureの際にprefixを設定しています。

# tar xzfv git-2.4.0.tar.gz
# cd git-2.4.0
# make configure
# ./configure --prefix=/usr/local
# make all doc info
# make install install-doc install-html install-info

以上でインストールは完了ですので、gitのバージョンを確認してみてください。

 - github