最新バージョンのgitのインストールを、Githubからソースをダウンロードしてコンパイルしてインストールする事ができます。
検証環境
CentOS v7.0 |
---|
Vagrant |
iMac |
という仮想環境で動作確認しています。
Githubからダウンロードする
最小限のインストール
以下をrootユーザで実行して下さい。
#!/bin/sh yum remove -y git yum install -y gcc gcc-c++ autoconf automake kernel-devel ncurses-devel gettext zlib-devel curl-devel perl-ExtUtils-MakeMaker openssl-devel cd /usr/local/src wget https://github.com/git/git/archive/master.zip unzip -q master.zip && cd git-master make configure ./configure --prefix=/usr/local make all make install rm -rf ../git-master
初期インストールされているgitをアンインストールしてから依存ライブラリをインストールし、ソースからコンパイルする事でインストールします。
フルセットでインストールする
html等のdocs込みのフルセットでインストールする場合は以下です。
こちらもrootユーザで実行して下さい。
#!/bin/sh yum remove -y git yum install -y gcc gcc-c++ autoconf automake kernel-devel ncurses-devel gettext zlib-devel curl-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel cd /usr/local/src wget https://github.com/git/git/archive/master.zip unzip -q master.zip && cd git-master make configure ./configure --prefix=/usr/local make all doc make install install-doc install-html rm -rf git-master
おまけ:kernel.orgからダウンロードする
こちらはkernel.orgからバージョンを指定してインストールする場合です。
kernel.orgの場合は最新バージョンを自分で調べる必要があるので、スクリプトを駆使して頑張って取得する必要があります。
#!/bin/sh # gitのDLディレクトリ gitDirUrl="https://www.kernel.org/pub/software/scm/git/" # gitのアーカイブファイル名 gitArchiveName=`curl $gitDirUrl | egrep 'git-[0-9]+\.[0-9]+\.[0-9]+\.tar\.gz' | tail -1 | sed -r 's/^.+href="([^"]+)".+$/\1/'` # gitのバージョン(gitのオフィシャルの番号とは異なるので注意) gitVersion=`echo $gitArchiveName | sed -e "s/git-\([0-9].[0-9].[0-9]\).tar.gz/\1/g"` # gitアーカイブを解凍した時のディレクトリ名 gitDirName="git-$gitVersion" # gitの最新バージョンのダウンロードURL latestGitUrl="$gitDirUrl$gitArchiveName" yum remove -y git yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils perl-ExtUtils-MakeMaker cd /usr/local/src wget $latestGitUrl tar zxvf $gitArchiveName cd $gitDirName ./configure --prefix=/usr/local make prefix=/usr/local all make prefix=/usr/local install cd - rm -rf $gitDirName
特に理由がなければこちらではなくGithubからソースDL→コンパイル→インストール、の方がいいかと思います。
雑感
ちなみにこれらの使い道ですが、通常はchefやansibleで環境を構築すると思いますが、chef・ansibleのサーバを構築する時のプロビジョニングで使用する事を目的としています。
gitのバージョンアップの速度が想像以上に速く、常に最新バージョンをインストールしておきたいですね。特に、サーバの環境構築時のソフトウェアのインストールにはgitが必須になる場合が多いので、益々最新版gitのインストール機会は増えそうです。

- 作者: 川野辺正博
- 出版社/メーカー: 秀和システム
- 発売日: 2014/10/07
- メディア: Kindle版
- この商品を含むブログを見る

Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ
- 作者: 塩谷啓,紫竹佑騎,原一成,平木聡著
- 出版社/メーカー: インプレス
- 発売日: 2014/11/27
- メディア: Kindle版
- この商品を含むブログを見る

- 作者: 松下雅和,船ヶ山慶,平木聡,土橋林太郎,三上丈晴
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2014/04/09
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る