Ubuntu 20.04 にて Git の最新版を手動でインストールする方法

結論

1. パッケージをインストールする

$ sudo apt install -y gettext asciidoc xmlto docbook2x libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

2. リポジトリよりソースコードをダウンロードする

2-1. リポジトリ(のタグ一覧ページ)にアクセスする

github.com

2-2. インストールしたいバージョンのアーカイブをダウンロードする

ziptar.gz が選べますが、ここでは zip を選びます。

なお、作業ディレクトリは /tmp/working_dir とします(以下同様)。

$ mkdir /tmp/working_dir
$ cd /tmp/working_dir
$ wget https://github.com/git/git/archive/refs/tags/v2.35.1.zip
2-3. ダウンロードしたアーカイブを展開する

展開します。

$ unzip v2.35.1.zip
2-4. 展開したディレクトリへ移動する

移動します。

$ cd git-2.35.1
2-5. コンパイル&インストールする

以下のコマンドを実行してコンパイル&インストールします。システムグローバルにインストールするので --prefix=/usr としています。

--prefix で指定したディレクトリ配下に bin/ libexec/ share/ の各ディレクトリが作られます(既存の場合はそのまま)。それらのディレクトリの中に git 本体や関連するファイルがインストールされることになります。

したがって、$ which git の結果が /usr/bin/git ではない場合には、--prefix に指定する値を変更する必要があります。

$ make configure
$ ./configure --prefix=/usr
# make にはかなりの時間がかかります
$ make all doc info
$ sudo make install install-doc install-html install-info
2-6. バージョンを確認する
$ git --version
git version 2.35.1

注意点

パッケージマネージャで入れた git と同じ場所にインストールすると、パッケージマネージャで入れた方に更新があった場合に上書きされてしまいます*1

したがって、パスの優先度が高い場所に手動でインストールしたほうがいいです。

補足

コンパイルに必要なパッケージがインストールされていないと例えば以下のようなエラーメッセージが出ます。

/bin/sh: 1: msgfmt: not found
/bin/sh: 1: asciidoc: not found

*1:明示的に入れてなくても、たとえば gh コマンドをパッケージマネージャ入れると関連パッケージとして入ってくる

Powered by はてなブログ