インストール - Git
概要
パッケージ管理システムでインストールされる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をソースコードからインストール
- まず、GetTextの公式Webサイトから、GetTextをダウンロードする。
- 次に、GetTextを解凍して、GetTextディレクトリ直下にbuildディレクトリを作成する。
mkdir build
- GetTextをビルドおよびインストールするため、以下のコマンドを実行する。
../configure --prefix=<GetTextのインストールディレクトリ> make -j $(nproc) make install
- ~/.profileファイル等に、以下に示す環境変数を追記する。
export PATH="<GetTextのインストールディレクトリ>/bin:$PATH" export LD_LIBRARY_PATH="<GetTextのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
オプション : Texliveをソースコードからインストール
Texliveをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。
- Texliveの公式Webサイトにアクセスして、Texliveのインストーラをダウンロードする。
または、wgetコマンドを実行して、Texliveのインストーラをダウンロードする。wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
- ダウンロードしたファイルを解凍する。
tar xf install-tl-unx.tar.gz cd "install-tl-*"
- Texliveのインストーラを起動して、インストールするコンポーネント選択する。
./install-tl -gui
- ~/.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をソースコードからインストール
- AsciiDocのGihubにアクセスして、ソースコードをダウンロードする。
- ダウンロードしたファイルを解凍する。
tar xf asciidoc-<バージョン>.tar.gz cd asciidoc-<バージョン>
- AsciiDocをビルドおよびインストールする。
autoreconf -i ./configure --prefix=<AsciiDocのインストールディレクトリ> sudo make DESTDIR=<AsciiDocのインストールディレクトリ> install
- ~/.profileファイル等に、以下に示す環境変数を追記する。
export PATH="/<AsciiDocのインストールディレクトリ>/bin:$PATH" export PYTHONPATH="/<AsciiDocのインストールディレクトリ>/lib/python<バージョン>/site-packages:$PYTHONPATH"
オプション : XMLtoをソースコードからインストール
- XMLtoの公式Webサイトにアクセスして、ソースコードをダウンロードする。
- ダウンロードしたファイルを解凍する。
tar xf xmlto-<バージョン>.tar.gz cd xmlto-<バージョン>
- XMLto 0.0.2.9の場合、以下に示すファイルを作成および修正する必要がある。
- 下記に示す空のファイルを作成する。
touch AUTHORS ChangeLog NEWS README xmlto.in xmlto.spec.in
- 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])
- 下記に示す空のファイルを作成する。
- XMLtoをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<XMLtoのインストールディレクトリ> make -j $(nproc) make install
- ~/.profileファイル等に、以下に示す環境変数を追記する。
export PATH="/<XMLtoのインストールディレクトリ>/bin:$PATH"
オプション : DocBook2xをソースコードからインストール
- DocBook2xの公式Webサイトにアクセスして、ソースコードをダウンロードする。
- ダウンロードしたファイルを解凍する。
tar xf docbook2X-<バージョン>.tar.gz cd docbook2X-<バージョン>
- DocBook2xをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<DocBook2xのインストールディレクトリ> make -j $(nproc) make install
- DocBook2xの実行ファイルのシンボリックリンクを生成する。
cd /<DocBook2xのインストールディレクトリ>/bin ln -s docbook2texi docbook2x-texi
- ~/.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