kuroの覚え書き

96の個人的覚え書き

CentOS7のGitを最新のものにする

CentOS7のyumでインストールされるGitは1.xxとか古くてlinuxbrewのインストールでエラーが出て進まないので最新のGitをインストールする話。

まずは

# yum remove git

で古いのを消しておく。
次に
バイナリをダウンロード
https://mirrors.edge.kernel.org/pub/software/scm/git/
ここでインストールしたいバージョンの場所をコピーしておく

# cd /usr/local/src
# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.2.tar.gz
# tar xvzf git-2.29.2.tar.gz 
# rm -rf git-2.29.2.tar.gz 
# cd git-2.29.2/
# make prefix=/usr/local all
# make prefix=/usr/local install

これで

# git --version
git version 2.29.2

よしよし。

ところが

$ which git
/usr/local/bin/git

をHomebrewのスクリプトが見つけてくれない。
PATH=/usr/local/bin/git:$PATH
としても駄目なので

# ln -s /usr/local/bin/git /usr/bin/git

としてやってどうにかインストールできた。

追記
さらにエラーが出たときの対処

$ sudo make prefix=/usr/local all
GIT_VERSION = 2.29.2
make: curl-config: コマンドが見つかりませんでした
    * new build flags
    GEN command-list.h
    GEN config-list.h
    CC fuzz-commit-graph.o
/bin/sh: cc: コマンドが見つかりません
make: *** [fuzz-commit-graph.o] エラー 127

$ sudo yum install curl-devel
$ sudo yum install gcc

$ sudo make prefix=/usr/local all
........
致命的エラー: expat.h: そのようなファイルやディレクトリはありません
コンパイルを停止しました。
$ sudo yum install expat-devel