gitをソースコードから入れる


環境

CentOS release 6.4 (Final)

経緯

  1. yumで入れられるgitが1.7.1までだった(2014/12/11現在)
  2. ius、wandiscoのrpm使ってもうまく入らない...
  3. やむなし...ソースコードからやるか...

手順

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz
# cd git-2.2.0
# ./configure
# make
# make install
# git --version
git version 2.2.0

最初に、必要なパッケージを入れておかないと、make時にエラーが出てくれるパッケージもあるが、
インストールしてから動かないということ(下記その5)も起きるので注意

この手順に至るまでの、今回起こったエラー対処

その1:Makefile.PLを書くのに必要なモジュールがない

# make

...省略...

    SUBDIR perl
/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] エラー 2
make: *** [perl/perl.mak] エラー 2
# yum install perl-ExtUtils-MakeMaker

その2:ツール操作言語が最適化されてない

# make

...省略...

    SUBDIR git-gui
GITGUI_VERSION = 0.19.0.2.g3decb8e
    * new locations or Tcl/Tk interpreter
    GEN git-gui
    INDEX lib/
    * tclsh failed; using unoptimized loading
    MSGFMT    po/bg.msg make[1]: *** [po/bg.msg] エラー 127
make: *** [all] エラー 2
# yum install tcl*.x86_64

その3: msgfmtがない

# make

...省略...

Manifying blib/man3/Git.3pm
    SUBDIR templates
    MSGFMT po/build/locale/bg/LC_MESSAGES/git.mo
/bin/sh: msgfmt: コマンドが見つかりません
make: *** [po/build/locale/bg/LC_MESSAGES/git.mo] エラー 127

(ここで何故か)

# yum install expat-devel

その4:だからmsgfmtがないんだって

# make

...省略...

/usr/bin/perl -pe "s<\Q++LOCALEDIR++\E></usr/local/share/locale>" <Git.pm >blib/lib/Git.pm
    SUBDIR templates
    MSGFMT po/build/locale/bg/LC_MESSAGES/git.mo
/bin/sh: msgfmt: コマンドが見つかりません
make: *** [po/build/locale/bg/LC_MESSAGES/git.mo] エラー 127

msgfmtが入ってるgettextをインストール
(公式ではgettext-develと書いてありましたのでそちらがオススメかと)

# yum install gettext

その5:クローンできない()

# git clone https://gist.github.com/abcdefghijkmnlopqrst.git
Cloning into 'abcdefghijkmnlopqrst'...
fatal: Unable to find remote helper for 'https'

curl-develが入ってないことが原因。
アンインストールして、コンパイルからやりなおし...

# make uninstall
make: *** ターゲット `uninstall' を make するルールがありません.  中止.

# cat Makefile | grep uninstall
#

なるほど、つんだ。

アンインストールする手順を、別に書きました。
http://qiita.com/soeda_jp/items/fd7602ecf95db656cb05

参考

最新のバージョンのGitをソースコードからインストールする

CentOS6.5にGitをソースコードからインストールする

VPS 鯖に git いれたよ

CentOS 6.3にGit1.8.1をインストール

git clone https:/~ でfatal: Unable to find remote helper for 'https'が出たとき

Git - Gitのインストール