「インストール - Git」の版間の差分
(同じ利用者による、間の13版が非表示) | |||
2行目: | 2行目: | ||
パッケージ管理システムでインストールされるGitは、バージョンが古いことが多い。<br> | パッケージ管理システムでインストールされるGitは、バージョンが古いことが多い。<br> | ||
<br> | <br> | ||
パッケージ一覧を返すコマンド( | パッケージ一覧を返すコマンド(<code>dnf list installed</code>、または、<code>rpm -qa</code>)を使用して、<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> | <br><br> | ||
== 依存関係のライブラリのインストール == | == 依存関係のライブラリのインストール == | ||
まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。 | まず、以下コマンドを実行し、Gitの依存ライブラリをインストールする。 | ||
# | # RHEL | ||
sudo | 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> | ||
RHELでは、EPELリポジトリを有効にする。(docbook2Xパッケージをダウンロードするのに必要)<br> | |||
# | # RHEL | ||
sudo | sudo dnf install asciidoc xmlto docbook2X | ||
# SUSE | # SUSE | ||
sudo zypper install asciidoc xmlto docbook2X | sudo zypper install asciidoc xmlto docbook2X | ||
<br> | <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> | <br> | ||
43行目: | 33行目: | ||
#: <code>mkdir build</code> | #: <code>mkdir build</code> | ||
# GetTextをビルドおよびインストールするため、以下のコマンドを実行する。 | # GetTextをビルドおよびインストールするため、以下のコマンドを実行する。 | ||
#: <code>../configure --prefix= | #: <code>../configure --prefix=<GetTextのインストールディレクトリ></code> | ||
#: <code>make -j $(nproc)</code> | #: <code>make -j $(nproc)</code> | ||
#: <code>make install</code> | #: <code>make install</code> | ||
# .profileファイルまたは.bashrcファイル等に、以下の環境変数を追記する。 | # .profileファイルまたは.bashrcファイル等に、以下の環境変数を追記する。 | ||
#: <code>export PATH=" | #: <code>export PATH="<GetTextのインストールディレクトリ>/bin:$PATH"</code> | ||
#: <code>export LD_LIBRARY_PATH=" | #: <code>export LD_LIBRARY_PATH="<GetTextのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"</code> | ||
<br> | <br> | ||
<u> | * Texliveのインストール | ||
[https://tug.org/texlive/acquire-netinstall.html Texliveの公式Webサイト]にアクセスして、Texliveのインストーラをダウンロードする。 | *: <u>Texliveをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールすることを推奨する。</u> | ||
または、<code>wget</code>コマンドを実行して、Texliveのインストーラをダウンロードする。< | *: [https://tug.org/texlive/acquire-netinstall.html Texliveの公式Webサイト]にアクセスして、Texliveのインストーラをダウンロードする。 | ||
*: または、<code>wget</code>コマンドを実行して、Texliveのインストーラをダウンロードする。 | |||
*: <code>wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz</code> | |||
*: <br> | |||
*: ダウンロードしたファイルを解凍する。 | |||
*: <code>tar xf install-tl-unx.tar.gz</code> | |||
*: <code>cd "install-tl-*"</code> | |||
*: <br> | |||
*: Texliveのインストーラを起動して、インストールするコンポーネント選択する。 | |||
*: <code>./install-tl -gui</code> | |||
*: <br> | |||
*: インストール後、.profileファイル等に以下の環境変数を追記する。 | |||
*: <code>export PATH="/<Texliveのインストールディレクトリ>/bin/x86_64-linux:$PATH"</code> | |||
*: <code>export MANPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/man:$MANPATH"</code> | |||
*: <code>export INFOPATH="/<Texliveのインストールディレクトリ>/texmf-dist/doc/info:$INFOPATH"</code> | |||
<br> | <br> | ||
ダウンロードしたファイルを解凍する。< | * AsciiDocのインストール | ||
*: [https://github.com/asciidoc-py/asciidoc-py/releases AsciiDocのGihub]にアクセスして、ソースコードをダウンロードする。 | |||
*: ダウンロードしたファイルを解凍する。 | |||
*: <code>tar xf asciidoc-<バージョン>.tar.gz</code> | |||
*: <code>cd asciidoc-<バージョン></code> | |||
*: <br> | |||
*: AsciiDocをビルドおよびインストールする。<br> | |||
*: <code>autoreconf -i</code> | |||
*: <br> | |||
*: <code>./configure --prefix=<AsciiDocのインストールディレクトリ></code> | |||
*: <code>sudo make DESTDIR=<AsciiDocのインストールディレクトリ> install</code> | |||
*: <br> | |||
*: .profileファイル等に以下の環境変数を追記する。 | |||
*: <code>export PATH="/<AsciiDocのインストールディレクトリ>/bin:$PATH"</code> | |||
*: <code>export PYTHONPATH="/<AsciiDocのインストールディレクトリ>/lib/python<バージョン>/site-packages:$PYTHONPATH"</code> | |||
<br> | <br> | ||
* XMLtoのインストール | |||
*: [https://releases.pagure.org/xmlto XMLtoの公式Webサイト]にアクセスして、ソースコードをダウンロードする。 | |||
*: ダウンロードしたファイルを解凍する。 | |||
*: <code>tar xf xmlto-<バージョン>.tar.gz</code> | |||
*: <code>cd xmlto-<バージョン></code> | |||
*: <br> | |||
*: XMLtoをビルドおよびインストールする。 | |||
*: <code>mkdir build && cd build</code> | |||
*: <br> | |||
*: <code>../configure --prefix=<XMLtoのインストールディレクトリ></code> | |||
*: <code>make -j $(nproc)</code> | |||
*: <code>make install</code> | |||
*: <br> | |||
*: .profileファイル等に以下の環境変数を追記する。 | |||
*: <code>export PATH="/<XMLtoのインストールディレクトリ>/bin:$PATH"</code> | |||
<br> | <br> | ||
* DocBook2xのインストール | |||
*: [http://docbook2x.sourceforge.net DocBook2xの公式Webサイト]にアクセスして、ソースコードをダウンロードする。 | |||
*: ダウンロードしたファイルを解凍する。 | |||
*: <code>tar xf docbook2X-<バージョン>.tar.gz</code> | |||
*: <code>cd docbook2X-<バージョン></code> | |||
*: <br> | |||
*: DocBook2xをビルドおよびインストールする。 | |||
*: <code>mkdir build && cd build</code> | |||
*: <br> | |||
*: <code>../configure --prefix=<DocBook2xのインストールディレクトリ></code> | |||
*: <code>make -j $(nproc)</code> | |||
*: <code>make install</code> | |||
*: <br> | |||
*: DocBook2xの実行ファイルのシンボリックリンクを生成する。 | |||
*: <code>cd /<DocBook2xのインストールディレクトリ>/bin</code> | |||
*: <code>ln -s docbook2texi docbook2x-texi</code> | |||
*: <br> | |||
*: .profileファイル等に以下の環境変数を追記する。 | |||
*: <code>export PATH="/<DocBook2xのインストールディレクトリ>/bin:$PATH"</code> | |||
<br><br> | <br><br> | ||
== Gitのインストール == | == Gitのインストール == | ||
以下の[https://github.com/git/git | 以下の[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 | ||
76行目: | 119行目: | ||
<br> | <br> | ||
Gitをビルドおよびインストールする。<br> | Gitをビルドおよびインストールする。<br> | ||
この時、ビルドディレクトリを作成してはならない。<br> | |||
tar xf git-<バージョン>.tar.gz | tar xf git-<バージョン>.tar.gz | ||
cd git-<バージョン> | cd git-<バージョン> | ||
81行目: | 125行目: | ||
make configure | make configure | ||
./configure --prefix=<Gitのインストールディレクトリ> --with-python --with-perl --with-libpcre2 | |||
make -j $(nproc) all | make -j $(nproc) all | ||
make install | make install | ||
91行目: | 133行目: | ||
export PATH="/<Gitのインストールディレクトリ>/bin:$PATH" | export PATH="/<Gitのインストールディレクトリ>/bin:$PATH" | ||
<br> | <br> | ||
インストールしたGitのバージョンを確認する。<br> | |||
git --version | |||
git | |||
<br><br> | <br><br> | ||
110行目: | 150行目: | ||
<br><br> | <br><br> | ||
== | == エラー == | ||
==== gitコマンドが使用できない場合 ==== | |||
Gitのインストール後、バージョン確認で"そのようなファイルやディレクトリはありません"と表示される場合がある。<br> | |||
git --version | git --version | ||
# | # 出力例 | ||
-bash: /usr/bin/git: そのようなファイルやディレクトリはありません | -bash: /usr/bin/git: そのようなファイルやディレクトリはありません | ||
<br> | <br> | ||
まず、<code>which</code>コマンドを実行して、パスを確認する。<br> | |||
which git | which git | ||
# | # 出力例 (gitコマンドのパスが/usr/local/bin/gitの場合) | ||
/usr/local/bin/git | /usr/local/bin/git | ||
<br> | <br> | ||
/usr/local/ | もし、環境変数<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> | ||
gitコマンドのパスが通っているかどうかを確認する。<br> | |||
git --version | git --version | ||
<br><br> | <br><br> | ||
136行目: | 176行目: | ||
そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。<br> | そこで、リモートリポジトリを操作する時にどの鍵を使用するか任意で指定できる方法を記載する。<br> | ||
<br> | <br> | ||
==== | ==== Gitのバージョンの確認 ==== | ||
Git 2.3以降から使用できる。<br> | |||
git --version | git --version | ||
<br> | <br> | ||
==== リモートリポジトリ操作時に鍵を指定する ==== | |||
リモートリポジトリを操作する時に鍵を任意で指定する場合、環境変数<code>GIT_SSH_COMMAND</code>を使用する。<br> | |||
GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' | GIT_SSH_COMMAND='ssh -i 秘密鍵のパス' git <...略> | ||
<br> | <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 <オプション> <リモートリポジトリ> | ||
< | |||
# <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__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] |
2024年1月15日 (月) 15:50時点における最新版
概要
パッケージ管理システムでインストールされる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ファイルまたは.bashrcファイル等に、以下の環境変数を追記する。
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をビルドおよびインストールする。
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