torutkのブログ

ソフトウェア・エンジニアのブログ

CentOS 6のgitバージョンを1.7.1から新しくする

(注記)1.7.11-3は、Proxy経由でhttp(httpsプロトコルでclone時にタイムアウトエラーを起こします。回避策は見出せてないのでより新しいバージョンを使う必要があります。(参考:CentOS 6でgitのバージョンを上げる - ソフトウェアエンジニアリング - Torutk


CentOS 6.xのgitコマンドはhttpアクセスで認証が必要なときにプロンプトを出さずに401エラーを出す? - torutkの日記の日記に、CentOS 6の標準gitがHTTPアクセスでBasic認証を行うときの問題といまいちな回避策を書きました。

今回は、CentOS 6のgitを手っ取り早くバージョンアップする方法を探し、Repoforgeが公開するRPMパッケージ2つを用いて1.7.11にすることができました。

gitのバージョンについて少し調べてみたところ

git-1.7.1は、2010-04-24にリリースされましたが、今ではいくつかコマンド・オプションが使えないなど古さが目立つようです。

RepoforgeからRPMパッケージファイルを入手

/etc/yum.repos.d/に、Repoforgeへのアクセス設定を追加してインストールする手順を見かけますが、Repoforgeへの依存は避けたいので、ここではファイルを個別に入手してインストールします。

http://pkgs.repoforge.org/git/ より、gitおよび

CentOS 6 64bit版の場合、次の2つのファイルをダウンロードします。(バージョンは本日現在の最新、今後新しいバージョンが置かれていたらそれを)

Repoforgeのgitをインストール

まず、CentOS標準のgitを削除します。

# yum erase perl-Git

依存関係から、perl-Gitおよびgitがアンインストールされます。

# yum localinstall git-1.7.11.3-1.el6.rfx.x86_64.rpm \
perl-Git-1.7.11.3-1.el6.rfx.x86_64.rpm 

この2つのRPMパッケージは相互依存があるようで、片方ずつのインストールはエラーになるため、同時にインストールします。

# git --version
git version 1.7.11.3
#

これで、gitのバージョンが1.7.11にアップしました。

Basic認証のHTTPへpushする

$ git push
Username for 'http://cisterna': hogehoge
Password for 'http://toru@cisterna': fugafuga
Everything up-to-date
$