chef-cookbooks/git を使って Git 2.x をインストールする

CentOS(例えば 6.9 など)で yum から Git をインストールすると,普通に Git 1.x になってしまうので,Chef 公式クックブックを使って Git 2.x をインストールできるようにした.基本的には GitHub を見ればわかるけど,自分用にメモを残しておく.

$ git --version
git version 1.7.1

github.com

git::source

Git Cookbook で Git をインストールする場合,大きく以下の2種類のレシピがある(Windows は除く).デフォルトは git::package になっているけど,今回は Git 2.x をインストールするため git::source を使うことにした.

  • git::package
  • git::source

git::source を使う場合,デフォルト設定が attributes に入っているので,レシピに以下のように書くだけで,簡単にインストールできてしまう.

include_recipe 'git::source'

なお,master ブランチの attributes だと,Git 2.9.5 に固定されている.

$ git --version
git version 2.9.5

任意のバージョンを指定する

現時点だと Git 2.16.2 が最新なので,attributes/default.rb に以下の設定を追加すれば,インストールすることができる.

default['git']['version'] = '2.16.2'
default['git']['checksum'] = 'cbdc2398204c7b7bed64f28265870aabe40dd3cd5c0455f7d315570ad7f7f5c8'

正常にインストールすることができた.

$ git --version
git version 2.16.2

attributes/default.rb にバージョンを指定するだけだと Chef::Exceptions::ChecksumMismatch でエラーになってしまうので,チェックサムも変更する.ただし,チェックサムは自分で計算する必要があるので,git のリリースバイナリをダウンロードして shasum -a 256 を実行する.

github.com

実際に Git 2.9.5 と Git 2.16.2 のチェックサムは以下のように確認することができる.

$ shasum -a 256 git-2.9.5.tar.gz
88995ab18154fa302478d33efa4418d354a5e592645ebef02c69b3dd76b526c1  git-2.9.5.tar.gz

$ shasum -a 256 git-2.16.2.tar.gz
cbdc2398204c7b7bed64f28265870aabe40dd3cd5c0455f7d315570ad7f7f5c8  git-2.16.2.tar.gz