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

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
122行目: 122行目:


== Gitのインストール ==
== Gitのインストール ==
以下の[https://github.com/git/git/releases GitHubのWebサイト]にアクセスして、Gitのソースコードをダウンロードする。<br>
以下の[https://github.com/git/git GitHubのWebサイト]にアクセスして、Gitのソースコードをダウンロードする。<br>
または、<code>wget</code>コマンドでGitのソースコードをダウンロードする。<br>
または、<code>wget</code>コマンドでGitのソースコードをダウンロードする。<br>
  wget https://github.com/git/git/archive/<バージョン>.tar.gz
  wget https://github.com/git/git/archive/<バージョン>.tar.gz
136行目: 136行目:
  mkdir build && cd build
  mkdir build && cd build
   
   
  ../configure prefix=<Gitのインストールディレクトリ>
  ../configure prefix=<Gitのインストールディレクトリ> --with-python --with-perl --with-libpcre2
  make -j $(nproc) all
  make -j $(nproc) all
  make install
  make install

2022年11月1日 (火) 16:03時点における版

概要

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

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

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


既存のGitをアンインストール

既にパッケージマネージャーでGitをインストールしている場合は、
以下のコマンドを入力してアンインストールする。

# CentOS 7
sudo yum remove git

# SUSE
sudo zypper remove 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 gettext-tools libcurl-devel libexpat-devel libopenssl-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


GetTextを手動でインストールする場合、以下に示すようにインストールする。

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

mkdir build && cd build

../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 --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