「インストール - Git」の版間の差分
55行目: | 55行目: | ||
その後、以下のコマンドを入力してコンパイルおよびインストールする。<br> | その後、以下のコマンドを入力してコンパイルおよびインストールする。<br> | ||
# /usr/localディレクトリにインストールする場合 | # /usr/localディレクトリにインストールする場合 | ||
sudo tar zxvf git- | sudo tar zxvf git-<バージョン>.tar.gz | ||
cd git- | cd git-<バージョン> | ||
sudo make all prefix=/usr/local | sudo make all --prefix=/usr/local | ||
sudo make install prefix=/usr/local | sudo make install --prefix=/usr/local | ||
# | # ホームディレクトリにインストールする場合 | ||
tar zxvf git-<バージョン>.tar.gz | tar zxvf git-<バージョン>.tar.gz | ||
cd git- | cd git-<バージョン> | ||
make all prefix=/home/ユーザ名/Git | make all --prefix=/home/ユーザ名/Git | ||
make install prefix=/home/ユーザ名/Git | make install --prefix=/home/ユーザ名/Git | ||
<br><br> | <br><br> | ||
2020年7月15日 (水) 10:14時点における版
概要
aptやyum等のLinuxのパッケージマネージャーでインストールしたGitはバージョンが古いことが多い。
パッケージ一覧を返すコマンド(yum list installedまたはrpm -qa)を使用して、
文字列検索するgrepコマンドにパイプで渡すことで探したいパッケージ名の一覧を得ることができる。
Gitのバージョンが古くても最低限のことは問題ないが、Git2.8以降では、user.useConfigOnly という設定が追加され、
これを有効にすることで、ユーザ名やメールアドレスを設定していない時に環境変数を使用して勝手にユーザ情報を参照してしまうことを防ぐことができる。
既存のGitをアンインストール
既にパッケージマネージャーでGitをインストールしている場合は、
以下のコマンドを入力してアンインストールする。
# CentOS 7 sudo yum remove git # openSUSE Leap 15 sudo zypper remove git*
Git依存のライブラリをインストール
まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。
# CentOS 7 sudo yum install gcc make curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker # SUSE sudo zypper install gcc make curl-devel libexpat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
なお、ドキュメントをdoc、html、info形式等で出力する場合は、以下の依存ライブラリも必要になる。
CentOSでは、EPELリポジトリを有効にする。(docbook2Xパッケージをダウンロードするのに必要)
# CentOS sudo yum install asciidoc xmlto docbook2X # SUSE sudo zypper install asciidoc xmlto docbook2X
さらに、CentOSを使用している場合は、以下のコマンドを実行する。(バイナリ名が異なるために生じる問題を解消するため)
sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
ソースコードをダウンロード
以下のGitHubのWebサイトにアクセスして、最新のGitのソースコードをダウンロードする。
または、wgetコマンドでダウンロードする。
# /usr/localディレクトリにインストールする場合 cd /usr/local/src sudo wget https://github.com/git/git/archive/<バージョン>.tar.gz # ホームディレクトリにインストールする場合 cd /home/ユーザ名/Git/src sudo wget https://github.com/git/git/archive/<バージョン>.tar.gz
コンパイルしてインストール
ダウンロードしたGitのソースコードを展開して、展開されたディレクトリに移動する。
その後、以下のコマンドを入力してコンパイルおよびインストールする。
# /usr/localディレクトリにインストールする場合 sudo tar zxvf git-<バージョン>.tar.gz cd git-<バージョン> sudo make all --prefix=/usr/local sudo make install --prefix=/usr/local # ホームディレクトリにインストールする場合 tar zxvf git-<バージョン>.tar.gz cd git-<バージョン> make all --prefix=/home/ユーザ名/Git make install --prefix=/home/ユーザ名/Git
確認
以下のコマンドを入力して、インストールしたGitのバージョンを確認する。
git –-version
Gitのアップデート
Gitのリポジトリをクローンすることにより、Gitを通して最新のGitにアップデートすることができる。
Gitが新しくなるごとに、プルおよびコンパイルを行えば最新版がインストールできる。
# /usr/localディレクトリにインストールしている場合 cd /usr/local/src/ 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ディレクトリにインストールする場合 cd /home/ユーザ名/Git/src git clone git://git.kernel.org/pub/scm/git/git.git cd git make all --prefix=/home/ユーザ名/Git make install --prefix=/home/ユーザ名/Git
上記より、まず、sudo yum install gitまたはsudo zypper install git*でパッケージ管理システムからインストールして、
最新版へソースコードからアップデートする方が簡単である。
※ただし、sudo yum remove gitまたはsudo zypper remove git*をしなければならないことと、依存ライブラリのインストールは必須である。
備考
gitコマンドが使用できない場合
インストール後、バージョン確認で"そのようなファイルやディレクトリはありません"と表示された場合の対応について記載する。
git --version # 結果 -bash: /usr/bin/git: そのようなファイルやディレクトリはありません
以下のコマンドを実行して、パスが通っているか確認する。
which git # 例 (gitのディレクトリが、/usr/local/bin/gitになっている場合) /usr/local/bin/git
/usr/local/binディレクトリにインストールした場合は、以下のようにシンボリックリンクを設定する。
sudo ln -s /usr/local/bin/git /usr/bin/git
パスが通っているか確認する。
git --version
Gitで秘密鍵を指定してリモートリポジトリを操作する
Githubやbitbucketを併用している場合は、~/.ssh/configにドメイン毎にどの鍵を使用するか指定するのが一般的である。
しかし、Githubをマルチアカウントで運用するような場合は、ドメインが同じなのでこの方法はできない。
そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。
Gitのバージョンを確認
この方法は、Git 2.3以降から使用できるので、インストールされているGitのバージョンを確認する。
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