ビルド
この章は3つの部分で構成されています。
- ローカルPC上で開発するためのK2HDKCの設定方法
- ソースコードからK2HDKCを構築する方法
- K2HDKCのインストール方法
1.ビルド環境の構築
K2HDKCは主にFULLOCK、K2HASH 、CHMPXに依存します。 それぞれの依存ライブラリとヘッダファイルはK2HDKCを構築するために必要です。 それらをインストールする方法は2つあります。 好きなものを選ぶことができます。
- GitHubを使う
依存ライブラリのソースコードとヘッダファイルをインストールします。 あなたはそれらをビルドしてインストールします。 - packagecloud.ioを使用する
依存ライブラリのパッケージとヘッダファイルをインストールします。 あなたはそれらをインストールするだけです。 ライブラリはすでに構築されています。
1.1. GitHubから各依存ライブラリとヘッダファイルをインストールする
詳細については以下の文書を読んでください。
1.2. packagecloud.ioから各依存ライブラリとヘッダファイルをインストールします。
このセクションでは、packagecloud.ioから各依存ライブラリとヘッダーファイルをインストールする方法を説明します。
注:前のセクションでGitHubから各依存ライブラリとヘッダーファイルをインストールした場合は、このセクションを読み飛ばしてください。
最近のDebianベースLinuxの利用者は、以下の手順に従ってください。
$ sudo apt-get update -y
$ sudo apt-get install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.deb.sh \
| sudo bash
$ sudo apt-get install autoconf autotools-dev gcc g++ make gdb libtool pkg-config \
libyaml-dev libfullock-dev k2hash-dev chmpx-dev -y
$ sudo apt-get install git -y
Fedoraの利用者は、以下の手順に従ってください。
$ sudo dnf makecache
$ sudo dnf install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.rpm.sh \
| sudo bash
$ sudo dnf install autoconf automake gcc gcc-c++ gdb make libtool pkgconfig \
libyaml-devel libfullock-devel k2hash-devel chmpx-devel -y
$ sudo dnf install git -y
その他最近のRPMベースのLinuxの場合は、以下の手順に従ってください。
$ sudo yum makecache
$ sudo yum install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.rpm.sh \
| sudo bash
$ sudo yum install autoconf automake gcc gcc-c++ gdb make libtool pkgconfig \
libyaml-devel libfullock-devel k2hash-devel chmpx-devel -y
$ sudo yum install git -y
2. GitHubからソースコードを複製する
GitHubからK2HDKCのソースコードをダウンロードしてください。
$ git clone https://github.com/yahoojapan/k2hdkc.git
3. ビルドしてインストールする
以下のステップに従ってK2HDKCをビルドしてインストールしてください。 K2HDKCを構築するためにGNU Automakeを使います。
$ cd k2hdkc
$ sh autogen.sh
$ ./configure --prefix=/usr
$ make
$ sudo make install
K2HDKCを正常にインストールすると、k2hdkcのヘルプテキストが表示されます。
$ k2hdkc -h
[Usage]
k2hdkc [-conf <file path> | -json <json string>] [-ctlport <port>] [-cuk <cuk>] [-comlog] [-no_giveup_rejoin] [-d [silent|err|wan|msg|dump]] [-dfile <file path>]
k2hdkc [ -h | -v ]
[option]
-conf <path> specify the configuration file(.ini .yaml .json) path
-json <string> specify the configuration json string
-ctlport <port> specify the self control port(*)
-cuk <cuk string> specify the self CUK(*)
-no_giveup_rejoin not give up rejoining chmpx
-comlog enable logging communication command
-d <param> specify the debugging output mode:
silent - no output
err - output error level
wan - output warning level
msg - output debug(message) level
dump - output communication debug level
-dfile <path> specify the file path which is put output
-h(help) display this usage.
-v(version) display version.
[environment]
K2HDKCCONFFILE specify the configuration file(.ini .yaml .json) path
K2HDKCJSONCONF specify the configuration json string
(*) you can use environment DKCDBGMODE and DKCDBGFILE instead of -d/-dfile options.
(*) if ctlport and cuk option is specified, chmpx searches same ctlport/cuk
in configuration file and ignores "CTLPORT" or "CUK" directive in
"GLOBAL" section. and chmpx will start in the mode indicated by the
server entry that has been detected.