CentOS 6.5, yum でインストールした Git を 1.7.1 から 2.x にバージョンアップする (※Git2.14.1 まで対応、コメント参照)

  • 169
    いいね
  • 50
    コメント

CentOS 6.5, yum でインストールした Git を 1.7.1 から 2.x にバージョンアップする

$ sudo yum remove git
$ sudo yum install gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz
$ tar -zxf git-2.2.0.tar.gz
$ cd git-2.2.0
$ make prefix=/usr/local all
$ make prefix=/usr/local install
$ git --version

git version 2.2.0

これでどうだ!

// @clown0082 さん、GCC に関する編集リクエスト有難う御座いました m(_ _)m

途中の yum install は環境によって左右されるので、必要モノを記入.
already installed なら OK.

さすがにもう、6年前の Git を使い続けるのはちょっとね.
何度もセキュリティアップデートあったし、もう 1.8.1 以前なんか公式でも降ろされちゃってる.
(ちなみに、実際の1.7.1 のリリース自体は 2014 年の 4 月 24 日. Github の公式リポジトリ内のタグ)

それでは良きエンジニアライフを(^w^)ノシ


※追記: 2.2.x 以降にバージョンアップする手順はコメントを参照. 2.2.0 にした後は全部同じ手順で更新できると思います.

※追記2:@MamoruTsujimoto さんから頂いた情報から、以下のような現象が起こり得るとのことでしたので合わせて記載させていただきました。

【Q&A】git のインストール後に "No such file or directory" と怒られる

これはコメント欄に @MamoruTsujimoto さんから頂いた情報です。
実際に遭遇したことがなかったので助かりました、ありがとうございます。
(hash コマンドも初めて知りました…)

git を実行しようとした時に「そんなファイルはないよ!」と指摘されるファイルパスと、whichtype で確認したときのファイルパスで、ズレが生じるケースがあるようです。

$ git --version
-bash: /usr/bin/git: No such file or directory

$ which git
/usr/local/bin/git

$ type git
git is /usr/local/bin/git

この場合、bash の組み込みコマンドである hash コマンドで解決することが出来る、とのことでした。

$ hash -r

ちなみに tcsh を使っている方の場合は

% rehash

となります。

【Q&A】git のリポジトリから最新版落とせば OK.

この記事では tarball 化された git をダウンロードしているのですが、@belq さんよりもっと簡単にできるよ、との情報を頂きましたので追記しておきます。

英語: 1.5 Getting Started - Installing Git
日本語: 1.5 使い始める - Gitのインストール

実は公式には「一回インストール出来たら、次からはこれでOK」という感じで git でアップデートする方法が記載されています。

git clone git://git.kernel.org/pub/scm/git/git.git

こうすることで、毎回バージョンを指定しながら wget で取得せずとも、毎回最新版の git を手に入れることが可能です。
ただし、もし RC リリースがある場合は RC 版が入ってしまうことがあります。(現時点 2017/07/20 がそんな感じ)

git version 2.14.0.rc0.9.gcac25fc33

もし「安定版を使いたい」ということであれば従来通りの wget で、「RC版でも構わないからアップデート手順を手軽に自動化したい」ということであれば master ブランチからの clone で問題ないと思います。

詰まるところ RC 版だろうが master 版だろうがバグは起こりますし、この記事のコメント欄をこっそり追っかけてくれている方々はそれを承知の上で最新版をインストールしているだろうと思いますので、特にこだわる必要はないかなぁと考えています。

蛇足

ちなみに、git の git 運用(分かりづらい…) は以下のように 5 つのブランチから成り立っています。(現時点 2017/07/20)

  • pu - 提案 (Debian でいうポイントリリースを準備する proposed-updates)
  • todo - ToDo
  • next - 時期リリースに向けたテスト用ブランチ
  • master - マスタ
  • maint - メンテナンスリリースを行うためのブランチ