結論
1. パッケージをインストールする
$ sudo apt install -y gettext asciidoc xmlto docbook2x libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
2. リポジトリよりソースコードをダウンロードする
2-1. リポジトリ(のタグ一覧ページ)にアクセスする
2-2. インストールしたいバージョンのアーカイブをダウンロードする
zip
と tar.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 コマンドをパッケージマネージャ入れると関連パッケージとして入ってくる