(注記)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 $