Gitのインストール
VCS (Version Control System) として,現代的で代表的なGitをソースコードからインストールする。
多くのソフトウェアがVCSにGitを採用しており,ソースコードのダウンロード時にも必要になる。
項目 | 説明 |
---|---|
配布元 | Git |
リポジトリー | git/git: Git Source Code Mirror – This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements. |
手順 | git/INSTALL at master · git/git · GitHub |
依存情報 | |
依存先 (必須) | Make (GNU Make), zlib |
依存先 (任意) |
|
依存元 |
任意の依存先が多数ある。この中でsshとlibcurlは実用上必須だ。OpenSSLはOpenSSHのビルド時にインストールすることになる。
可能であれば,wishも有効にしてGit付属のGUIもビルドするとよいだろう。しかし,wishはGUIであるためビルドが厄介なので,ひとまず後回しにする。
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2019-02-24 | 2.19.2 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 8.1.0, OpenSSH 7.9p1, cURL 7.59.0, OpenSSL 1.1.1a |
2019-07-05 | 2.22.0 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 7.4.0, OpenSSH 7.9p1, cURL 7.59.0, OpenSSL 1.1.1a |
INSTALLにあるように,make configure; ./configure; make && make install
の代わりに,以下のようにmake時にprefixを指定してもビルドとインストールができる。
make -j $J prefix=$LOCAL/stow/$PKG-$VER && make prefix=$LOCAL/stow/$PKG-$VER install
今回は他のプログラムのインストールと手順を合わせるために,configureを作成する手順を採用した。
依存関係をローカル環境にインストールしている場合,Gitのビルドでは./configure
の実行前にexport LDFLAGS="-L$LOCAL/lib -L$LOCAL/iib64"
を実行するか,LDFLAGS="-L$LOCAL/lib" ./configure
のように,LDFLAGS環境変数にライブラリーの場所を指定する必要があった。そうしないと,ローカル環境にインストールしたcURLを認識せず,make
実行時に以下のエラーが出てしまった。
LINK git-imap-send /usr/bin/ld: cannot find -lcurl collect2: error: ld returned 1 exit status make: *** [Makefile:2349: git-imap-send] Error 1
なお,gitのリポジトリーには,sha1collisiondetectionサブモジュールが存在する。こちらは,MakefileでDC_SHA1とDC_SHA1_SUBMODULEを定義した場合に使用する実験的なオプションのようだ。
通常ビルドでは不要であるため,git submodule関係のコマンドは実行しない。