「インストール - Git」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

 
(同じ利用者による、間の21版が非表示)
2行目: 2行目:
パッケージ管理システムでインストールされるGitは、バージョンが古いことが多い。<br>
パッケージ管理システムでインストールされるGitは、バージョンが古いことが多い。<br>
<br>
<br>
パッケージ一覧を返すコマンド(yum list installedまたはrpm -qa)を使用して、<br>
パッケージ一覧を返すコマンド(<code>dnf list installed</code>、または、<code>rpm -qa</code>)を使用して、<br>
文字列検索するgrepコマンドにパイプで渡すことで探したいパッケージ名の一覧を得ることができる。<br>
<code>grep</code>コマンドにパイプで渡すことにより、検索するパッケージ名の一覧を取得することができる。<br>
<br>
<br>
Gitのバージョンが古くても最低限のことは問題ないが、Git2.8以降では、<code>user.useConfigOnly</code>という設定が追加され、<br>
Gitのバージョンが古くても最低限のことは問題ないが、Git2.8以降では、<code>user.useConfigOnly</code>という設定が追加され、<br>
これを有効にすることで、ユーザ名やメールアドレスを設定していない時に環境変数を使用して勝手にユーザ情報を参照してしまうことを防ぐことができる。<br>
これを有効にすることで、ユーザ名やメールアドレスを設定していない時に環境変数を使用して勝手にユーザ情報を参照してしまうことを防ぐことができる。<br>
<br><br>
== 既存のGitをアンインストール ==
既にパッケージマネージャーでGitをインストールしている場合は、<br>
以下のコマンドを入力してアンインストールする。<br>
# CentOS 7
sudo yum remove git
# SUSE
sudo zypper remove git*
<br><br>
<br><br>


== 依存関係のライブラリのインストール ==
== 依存関係のライブラリのインストール ==
まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。
まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。
  # CentOS 7
  # RHEL
  sudo yum install gcc make curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
  sudo dnf install gcc make curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel perl-ExtUtils-MakeMaker
   
   
  # SUSE
  # SUSE
  sudo zypper install gcc make gettext-tools libcurl-devel libexpat-devel libopenssl-devel zlib-devel perl-ExtUtils-MakeMaker
  sudo zypper install gcc make gettext-tools libcurl-devel libexpat-devel libopenssl-devel zlib-devel pcre2-devel perl-ExtUtils-MakeMaker
<br>
<br>
なお、ドキュメントをdoc、html、info形式等で出力する場合は、以下の依存ライブラリも必要になる。<br>
なお、ドキュメントをdoc、html、info形式等で出力する場合は、以下の依存ライブラリも必要になる。<br>
CentOSでは、EPELリポジトリを有効にする。(docbook2Xパッケージをダウンロードするのに必要)<br>
RHELでは、EPELリポジトリを有効にする。(docbook2Xパッケージをダウンロードするのに必要)<br>
  # CentOS
  # RHEL
  sudo yum install asciidoc xmlto docbook2X
  sudo dnf install asciidoc xmlto docbook2X
   
   
  # SUSE
  # SUSE
  sudo zypper install asciidoc xmlto docbook2X
  sudo zypper install asciidoc xmlto docbook2X
<br>
<br>
さらに、CentOSを使用している場合は、以下のコマンドを実行する。(バイナリ名が異なるために生じる問題を解消するため)<br>
さらに、RHELを使用している場合は、docbook2texiバイナリ名が異なるために生じる問題を解消する。<br>
  sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
  sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
<br>
==== オプション : GetTextをソースコードからインストール ====
# まず、GetTextの[https://www.gnu.org/software/gettext/ 公式Webサイト]から、GetTextをダウンロードする。
# 次に、GetTextを解凍して、GetTextディレクトリ直下にbuildディレクトリを作成する。
#: <pre>mkdir build</pre>
# GetTextをビルドおよびインストールするため、以下のコマンドを実行する。
#: <syntaxhighlight lang="text">
../configure --prefix=<GetTextのインストールディレクトリ>
make -j $(nproc)
make install
</syntaxhighlight>
# ~/.profileファイル等に、以下に示す環境変数を追記する。
#: <syntaxhighlight lang="sh">
export PATH="<GetTextのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="<GetTextのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
</syntaxhighlight>
<br>
==== オプション : Texliveをソースコードからインストール ====
<u>Texliveをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。</u><br>
<br>
# [https://tug.org/texlive/acquire-netinstall.html Texliveの公式Webサイト]にアクセスして、Texliveのインストーラをダウンロードする。<br>または、<code>wget</code>コマンドを実行して、Texliveのインストーラをダウンロードする。
#: <pre>wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz</pre>
#: <br>
# ダウンロードしたファイルを解凍する。
#: <syntaxhighlight lang="text">
tar xf install-tl-unx.tar.gz
cd "install-tl-*"
</syntaxhighlight>
#: <br>
# Texliveのインストーラを起動して、インストールするコンポーネント選択する。
#: <pre>./install-tl -gui</pre>
#: <br>
# ~/.profileファイル等に以下に示す環境変数を追記する。
#: <syntaxhighlight lang="sh">
export PATH="/<Texliveのインストールディレクトリ>/bin/x86_64-linux:$PATH"
export MANPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/man:$MANPATH"
export INFOPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/info:$INFOPATH"
</syntaxhighlight>
<br>
==== オプション : AsciiDocをソースコードからインストール ====
# [https://github.com/asciidoc-py/asciidoc-py/releases AsciiDocのGihub]にアクセスして、ソースコードをダウンロードする。
# ダウンロードしたファイルを解凍する。
#: <syntaxhighlight lang="text">
tar xf asciidoc-<バージョン>.tar.gz
cd asciidoc-<バージョン>
</syntaxhighlight>
#: <br>
# AsciiDocをビルドおよびインストールする。<br>
#: <syntaxhighlight lang="text">
autoreconf -i
./configure --prefix=<AsciiDocのインストールディレクトリ>
sudo make DESTDIR=<AsciiDocのインストールディレクトリ> install
</syntaxhighlight>
#: <br>
# ~/.profileファイル等に、以下に示す環境変数を追記する。
#: <syntaxhighlight lang="sh">
export PATH="/<AsciiDocのインストールディレクトリ>/bin:$PATH"
export PYTHONPATH="/<AsciiDocのインストールディレクトリ>/lib/python<バージョン>/site-packages:$PYTHONPATH"
</syntaxhighlight>
<br>
==== オプション : XMLtoをソースコードからインストール ====
# [https://releases.pagure.org/xmlto XMLtoの公式Webサイト]にアクセスして、ソースコードをダウンロードする。
# ダウンロードしたファイルを解凍する。
#: <syntaxhighlight lang="text">
tar xf xmlto-<バージョン>.tar.gz
cd xmlto-<バージョン>
</syntaxhighlight>
#: <br>
# <u>XMLto 0.0.2.9の場合、以下に示すファイルを作成および修正する必要がある。</u>
## 下記に示す空のファイルを作成する。
##: <pre>touch AUTHORS ChangeLog NEWS README xmlto.in xmlto.spec.in</pre>
##: <br>
## configure.acファイルの3行目にある <code>AM_INIT_AUTOMAKE</code> の呼び出しを修正する。<br>これは、automakeにGNU標準のファイル構造を要求しないように指示するものである。
##: <syntaxhighlight lang="make">
# configure.acファイル
# 編集前
AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects 1.6])
# 編集後
AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects foreign 1.6])
</syntaxhighlight>
#: <br>
# XMLtoをビルドおよびインストールする。
#: <syntaxhighlight lang="text">
mkdir build && cd build
../configure --prefix=<XMLtoのインストールディレクトリ>
make -j $(nproc)
make install
</syntaxhighlight>
#: <br>
# ~/.profileファイル等に、以下に示す環境変数を追記する。
#: <syntaxhighlight lang="sh">
export PATH="/<XMLtoのインストールディレクトリ>/bin:$PATH"
</syntaxhighlight>
<br>
==== オプション : DocBook2xをソースコードからインストール ====
# [http://docbook2x.sourceforge.net DocBook2xの公式Webサイト]にアクセスして、ソースコードをダウンロードする。
# ダウンロードしたファイルを解凍する。
#: <syntaxhighlight lang="text">
tar xf docbook2X-<バージョン>.tar.gz
cd docbook2X-<バージョン>
</syntaxhighlight>
#: <br>
# DocBook2xをビルドおよびインストールする。
#: <syntaxhighlight lang="text">
mkdir build && cd build
../configure --prefix=<DocBook2xのインストールディレクトリ>
make -j $(nproc)
make install
</syntaxhighlight>
#: <br>
# DocBook2xの実行ファイルのシンボリックリンクを生成する。
#: <syntaxhighlight lang="text">
cd /<DocBook2xのインストールディレクトリ>/bin
ln -s docbook2texi docbook2x-texi
</syntaxhighlight>
#: <br>
# ~/.profileファイル等に、以下に示す環境変数を追記する。
#: <syntaxhighlight lang="sh">
export PATH="/<DocBook2xのインストールディレクトリ>/bin:$PATH"
</syntaxhighlight>
<br><br>
<br><br>


== Gitのインストール ==
== Gitのインストール ==
以下の[https://github.com/git/git/releases GitHubのWebサイト]にアクセスして、Gitのソースコードをダウンロードする。<br>
以下の[https://github.com/git/git GitHubのWebサイト]にアクセスして、Gitのソースコードをダウンロードする。<br>
または、<code>wget</code>コマンドでダウンロードする。<br>
または、<code>wget</code>コマンドでGitのソースコードをダウンロードする。<br>
# /usr/localディレクトリにインストールする場合
cd /usr/local/src
sudo wget https://github.com/git/git/archive/<バージョン>.tar.gz
# ホームディレクトリにインストールする場合
cd ~/InstallSoftware/Git/src
  wget https://github.com/git/git/archive/<バージョン>.tar.gz
  wget https://github.com/git/git/archive/<バージョン>.tar.gz
<br>
<br>
Gitのソースコードを解凍して、解凍したディレクトリに移動する。<br>
ダウンロードしたファイルを解凍して、解凍したディレクトリに移動する。<br>
Gitをビルドおよびインストールするため、以下のコマンドを実行する。<br>
<br>
# /usr/localディレクトリにインストールする場合
Gitをビルドおよびインストールする。<br>
  sudo tar zxvf git-<バージョン>.tar.gz
この時、ビルドディレクトリを作成してはならない。<br>
  tar xf git-<バージョン>.tar.gz
  cd git-<バージョン>
  cd git-<バージョン>
sudo make all prefix=/usr/local
sudo make install prefix=/usr/local
   
   
  # ホームディレクトリにインストールする場合
  make configure
  tar zxvf git-<バージョン>.tar.gz
  cd git-<バージョン>
  ./configure --prefix=<Gitのインストールディレクトリ> --with-python --with-perl --with-libpcre2
make all prefix=/home/<ユーザ名>/InstallSoftware/Git
  make -j $(nproc) all
  make install prefix=/home/<ユーザ名>/InstallSoftware/Git
make install
<br>
~/.profileファイル等に、環境変数を追記する。<br>
# ~/.profileファイル
  export PATH="/<Gitのインストールディレクトリ>/bin:$PATH"
<br>
<br>
.profileファイルまたは.bashrcファイル等に、以下の環境変数を追記する。<br>
インストールしたGitのバージョンを確認する。<br>
export PATH="$HOME/InstallSoftware/Git/bin:$PATH"
  git --version
export LD_LIBRARY_PATH="$HOME/InstallSoftware/Git/lib64:$LD_LIBRARY_PATH"
<br><br>
 
== 確認 ==
以下のコマンドを入力して、インストールしたGitのバージョンを確認する。<br>
  git -version
<br><br>
<br><br>


== Gitのアップデート ==
== Gitのアップデート ==
Gitのリポジトリをクローンすることにより、最新のGitにアップデートすることができる。<br>
Gitのリポジトリをクローンすることにより、最新のGitにアップデートすることができる。<br>
# /usr/localディレクトリにインストールしている場合
  cd <Gitのソースコードが存在するディレクトリ>
  cd /usr/local/src/
  git pull
  git clone git://git.kernel.org/pub/scm/git/git.git
cd git
sudo make all prefix=/usr/local
sudo make install prefix=/usr/local
   
   
# homeディレクトリにインストールする場合
  make -j $(nproc) all prefix=<Gitのインストールディレクトリ>
cd /home/ユーザ名/Git/src
  make install prefix=<Gitのインストールディレクトリ>
git clone git://git.kernel.org/pub/scm/git/git.git
cd git
  make all prefix=/home/ユーザ名/Git
  make install prefix=/home/ユーザ名/Git
<br>
<br>
上記の手順よりも、sudo yum install gitまたはsudo zypper install git*でパッケージ管理システムからインストールして、<br>
上記の手順よりも、パッケージ管理システムからGitをインストールして、ソースコードからビルドして最新版へアップデートする方が簡単である。<br>
最新版へソースコードからアップデートする方が簡単である。<br>
<u>ただし、パッケージ管理システムからGitをインストールしなければならないこと、および、ビルドに必要な依存関係のライブラリのインストールは必要となる。</u><br>
<u>ただし、sudo yum remove gitまたはsudo zypper remove git*をしなければならないことと、依存ライブラリのインストールは必須である。</u><br>
<br><br>
<br><br>


== 備考 ==
== エラー ==
===== gitコマンドが使用できない場合 =====
==== gitコマンドが使用できない場合 ====
インストール後、バージョン確認で"そのようなファイルやディレクトリはありません"と表示された場合の対応について記載する。<br>
Gitのインストール後、バージョン確認で"そのようなファイルやディレクトリはありません"と表示される場合がある。<br>
  git --version
  git --version
   
   
  # 結果
  # 出力例
  -bash: /usr/bin/git: そのようなファイルやディレクトリはありません
  -bash: /usr/bin/git: そのようなファイルやディレクトリはありません
<br>
<br>
以下のコマンドを実行して、パスが通っているか確認する。<br>
まず、<code>which</code>コマンドを実行して、パスを確認する。<br>
  which git
  which git
   
   
  # (gitのディレクトリが、/usr/local/bin/gitになっている場合)
  # 出力例 (gitコマンドのパスが/usr/local/bin/gitの場合)
  /usr/local/bin/git
  /usr/local/bin/git
<br>
<br>
/usr/local/binディレクトリにインストールした場合は、以下のようにシンボリックリンクを設定する。<br>
もし、環境変数<code>PATH</code>に/usr/local/binディレクトリが無い場合、/usr/binディレクトリにgitファイルのシンボリックリンクを作成する。<br>
  sudo ln -s /usr/local/bin/git /usr/bin/git
  sudo ln -s /usr/local/bin/git /usr/bin/git
<br>
<br>
パスが通っているか確認する。<br>
gitコマンドのパスが通っているかどうかを確認する。<br>
  git --version  
  git --version  
<br><br>
<br><br>
121行目: 221行目:
そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。<br>
そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。<br>
<br>
<br>
===== Gitのバージョンを確認 =====
==== Gitのバージョンの確認 ====
この方法は、Git 2.3以降から使用できるので、インストールされているGitのバージョンを確認する。<br>
Git 2.3以降から使用できる。<br>
  git --version
  git --version
<br>
<br>
===== リモートリポジトリ操作時に鍵を指定する =====
==== リモートリポジトリ操作時に鍵を指定する ====
リモートリポジトリを操作する時に鍵を任意で指定するコマンドは、GIT_SSH_COMMANDという環境変数を使用する。<br>
リモートリポジトリを操作する時に鍵を任意で指定する場合、環境変数<code>GIT_SSH_COMMAND</code>を使用する。<br>
  GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' gitコマンド
  GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' git <...略>
<br>
<br>
例えば、git cloneの場合は以下となる。<br>
# <code>git clone</code>コマンドと組み合わせる場合
  GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git clone リモートリポジトリ
  GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git clone <オプション> <リモートリポジトリ>
<br>
また、git pushの場合は以下となる。<br>
# <code>git push</code>コマンドと組み合わせる場合
  GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git push origin master
  GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git push origin master
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]

2025年12月23日 (火) 02:00時点における最新版

概要

パッケージ管理システムでインストールされるGitは、バージョンが古いことが多い。

パッケージ一覧を返すコマンド(dnf list installed、または、rpm -qa)を使用して、
grepコマンドにパイプで渡すことにより、検索するパッケージ名の一覧を取得することができる。

Gitのバージョンが古くても最低限のことは問題ないが、Git2.8以降では、user.useConfigOnlyという設定が追加され、
これを有効にすることで、ユーザ名やメールアドレスを設定していない時に環境変数を使用して勝手にユーザ情報を参照してしまうことを防ぐことができる。


依存関係のライブラリのインストール

まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。

# RHEL
sudo dnf install gcc make curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel perl-ExtUtils-MakeMaker

# SUSE
sudo zypper install gcc make gettext-tools libcurl-devel libexpat-devel libopenssl-devel zlib-devel pcre2-devel perl-ExtUtils-MakeMaker


なお、ドキュメントをdoc、html、info形式等で出力する場合は、以下の依存ライブラリも必要になる。
RHELでは、EPELリポジトリを有効にする。(docbook2Xパッケージをダウンロードするのに必要)

# RHEL
sudo dnf install asciidoc xmlto docbook2X

# SUSE
sudo zypper install asciidoc xmlto docbook2X


さらに、RHELを使用している場合は、docbook2texiバイナリ名が異なるために生じる問題を解消する。

sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi


オプション : GetTextをソースコードからインストール

  1. まず、GetTextの公式Webサイトから、GetTextをダウンロードする。
  2. 次に、GetTextを解凍して、GetTextディレクトリ直下にbuildディレクトリを作成する。
    mkdir build
  3. GetTextをビルドおよびインストールするため、以下のコマンドを実行する。
     ../configure --prefix=<GetTextのインストールディレクトリ>
     make -j $(nproc)
     make install
    
  4. ~/.profileファイル等に、以下に示す環境変数を追記する。
     export PATH="<GetTextのインストールディレクトリ>/bin:$PATH"
     export LD_LIBRARY_PATH="<GetTextのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
    


オプション : Texliveをソースコードからインストール

Texliveをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。

  1. Texliveの公式Webサイトにアクセスして、Texliveのインストーラをダウンロードする。
    または、wgetコマンドを実行して、Texliveのインストーラをダウンロードする。
    wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

  2. ダウンロードしたファイルを解凍する。
     tar xf install-tl-unx.tar.gz
     cd "install-tl-*"
    

  3. Texliveのインストーラを起動して、インストールするコンポーネント選択する。
    ./install-tl -gui

  4. ~/.profileファイル等に以下に示す環境変数を追記する。
     export PATH="/<Texliveのインストールディレクトリ>/bin/x86_64-linux:$PATH"
     export MANPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/man:$MANPATH"
     export INFOPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/info:$INFOPATH"
    


オプション : AsciiDocをソースコードからインストール

  1. AsciiDocのGihubにアクセスして、ソースコードをダウンロードする。
  2. ダウンロードしたファイルを解凍する。
     tar xf asciidoc-<バージョン>.tar.gz
     cd asciidoc-<バージョン>
    

  3. AsciiDocをビルドおよびインストールする。
     autoreconf -i
     
     ./configure --prefix=<AsciiDocのインストールディレクトリ>
     
     sudo make DESTDIR=<AsciiDocのインストールディレクトリ> install
    

  4. ~/.profileファイル等に、以下に示す環境変数を追記する。
     export PATH="/<AsciiDocのインストールディレクトリ>/bin:$PATH"
     export PYTHONPATH="/<AsciiDocのインストールディレクトリ>/lib/python<バージョン>/site-packages:$PYTHONPATH"
    


オプション : XMLtoをソースコードからインストール

  1. XMLtoの公式Webサイトにアクセスして、ソースコードをダウンロードする。
  2. ダウンロードしたファイルを解凍する。
     tar xf xmlto-<バージョン>.tar.gz
     cd xmlto-<バージョン>
    

  3. XMLto 0.0.2.9の場合、以下に示すファイルを作成および修正する必要がある。
    1. 下記に示す空のファイルを作成する。
      touch AUTHORS ChangeLog NEWS README xmlto.in xmlto.spec.in

    2. configure.acファイルの3行目にある AM_INIT_AUTOMAKE の呼び出しを修正する。
      これは、automakeにGNU標準のファイル構造を要求しないように指示するものである。
       # configure.acファイル
       
       # 編集前
       AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects 1.6])
       
       # 編集後
       AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects foreign 1.6])
      

  4. XMLtoをビルドおよびインストールする。
     mkdir build && cd build
     
     ../configure --prefix=<XMLtoのインストールディレクトリ>
     make -j $(nproc)
     make install
    

  5. ~/.profileファイル等に、以下に示す環境変数を追記する。
     export PATH="/<XMLtoのインストールディレクトリ>/bin:$PATH"
    


オプション : DocBook2xをソースコードからインストール

  1. DocBook2xの公式Webサイトにアクセスして、ソースコードをダウンロードする。
  2. ダウンロードしたファイルを解凍する。
     tar xf docbook2X-<バージョン>.tar.gz
     cd docbook2X-<バージョン>
    

  3. DocBook2xをビルドおよびインストールする。
     mkdir build && cd build
     
     ../configure --prefix=<DocBook2xのインストールディレクトリ>
     make -j $(nproc)
     make install
    

  4. DocBook2xの実行ファイルのシンボリックリンクを生成する。
     cd /<DocBook2xのインストールディレクトリ>/bin
     ln -s docbook2texi docbook2x-texi
    

  5. ~/.profileファイル等に、以下に示す環境変数を追記する。
     export PATH="/<DocBook2xのインストールディレクトリ>/bin:$PATH"
    



Gitのインストール

以下のGitHubのWebサイトにアクセスして、Gitのソースコードをダウンロードする。
または、wgetコマンドでGitのソースコードをダウンロードする。

wget https://github.com/git/git/archive/<バージョン>.tar.gz


ダウンロードしたファイルを解凍して、解凍したディレクトリに移動する。

Gitをビルドおよびインストールする。
この時、ビルドディレクトリを作成してはならない。

tar xf git-<バージョン>.tar.gz
cd git-<バージョン>

make configure

./configure --prefix=<Gitのインストールディレクトリ> --with-python --with-perl --with-libpcre2
make -j $(nproc) all
make install


~/.profileファイル等に、環境変数を追記する。

# ~/.profileファイル

export PATH="/<Gitのインストールディレクトリ>/bin:$PATH"


インストールしたGitのバージョンを確認する。

git --version



Gitのアップデート

Gitのリポジトリをクローンすることにより、最新のGitにアップデートすることができる。

cd <Gitのソースコードが存在するディレクトリ>
git pull

make -j $(nproc) all prefix=<Gitのインストールディレクトリ>
make install prefix=<Gitのインストールディレクトリ>


上記の手順よりも、パッケージ管理システムからGitをインストールして、ソースコードからビルドして最新版へアップデートする方が簡単である。
ただし、パッケージ管理システムからGitをインストールしなければならないこと、および、ビルドに必要な依存関係のライブラリのインストールは必要となる。


エラー

gitコマンドが使用できない場合

Gitのインストール後、バージョン確認で"そのようなファイルやディレクトリはありません"と表示される場合がある。

git --version

# 出力例
-bash: /usr/bin/git: そのようなファイルやディレクトリはありません


まず、whichコマンドを実行して、パスを確認する。

which git

# 出力例 (gitコマンドのパスが/usr/local/bin/gitの場合)
/usr/local/bin/git


もし、環境変数PATHに/usr/local/binディレクトリが無い場合、/usr/binディレクトリにgitファイルのシンボリックリンクを作成する。

sudo ln -s /usr/local/bin/git /usr/bin/git


gitコマンドのパスが通っているかどうかを確認する。

git --version 



Gitで秘密鍵を指定してリモートリポジトリを操作する

Githubやbitbucketを併用している場合は、~/.ssh/configにドメイン毎にどの鍵を使用するか指定するのが一般的である。
しかし、Githubをマルチアカウントで運用するような場合は、ドメインが同じなのでこの方法はできない。
そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。

Gitのバージョンの確認

Git 2.3以降から使用できる。

git --version


リモートリポジトリ操作時に鍵を指定する

リモートリポジトリを操作する時に鍵を任意で指定する場合、環境変数GIT_SSH_COMMANDを使用する。

GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' git <...略>


# git cloneコマンドと組み合わせる場合
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git clone <オプション> <リモートリポジトリ>

# git pushコマンドと組み合わせる場合
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_01' git push origin master