ビルド
この章は3つの部分で構成されています。
- ローカル開発用にK2HFTFUSEとK2HFTFUSESVRをセットアップする方法
- ソースコードからK2HFTFUSEとK2HFTFUSESVRを構築する方法
- K2HFTFUSEとK2HFTFUSESVRのインストール方法
1. ビルド環境の構築
K2HFTFUSEとK2HFTFUSESVRは、主にFULLOCK, K2HASH, CHMPX および K2HTPDTORに依存します。それぞれの依存ライブラリとヘッダファイルは、K2HFTFUSEとK2HFTFUSESVRをビルドするために必要です。それらをインストールする方法は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 libfuse-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 k2ハッシュ-devel chmpx-devel fuse fuse-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 k2ハッシュ-devel chmpx-devel fuse fuse-devel -y
$ sudo yum install git -y
2. GitHub からソースコードを複製する
GitHub からK2HFTFUSEとK2HFTFUSESVRのソースコードをダウンロードしてください。
$ git clone https://github.com/yahoojapan/k2hftfuse.git
3. ビルドしてインストールする
以下のステップに従ってK2HFTFUSEとK2HFTFUSESVRをビルドしてインストールしてください。 K2HFTFUSEとK2HFTFUSESVRを構築するためにGNU Automakeを使います。
$ cd k2hftfuse
$ sh autogen.sh
$ ./configure --prefix = / usr
$ make
$ sudo make install
K2HFTFUSEとK2HFTFUSESVRを正常にインストールすると、k2hftfuseのヘルプテキストが表示されます。
$ k2hftfuse -h
[Usage] k2hftfuse
You can run k2hftfuse by two way, one is manual and the other is using mount command.
* run k2hftfuse manually
k2hftfuse [mount point] [k2hftfuse or fuse options]
for example:
$ k2hftfuse /mnt/k2hfs -o allow_other,nodev,nosuid,_netdev,dbglevel=err,conf=/etc/k2hftfuse.conf -f -d &
* using mount/umount/fusermount
makes following formatted line in fstab:
k2hftfuse [mount point] fuse [k2hftfuse or fuse options]
for example:
k2hftfuse /mnt/k2hfs fuse allow_other,nodev,nosuid,_netdev,dbglevel=err,conf=/etc/k2hftfuse.conf 0 0
you can run k2hftfuse by mount command.
$ mount /mnt/k2hfs
$ umount /mnt/k2hfs
$ fusermount -d /mnt/k2hfs
* k2hftfuse options:
-h(--help) print help
-v(--version) print version
-d(--debug) set debug level "msg", this option is common with FUSE
-o umask=<number> set umask with FUSE
-o uid=<number> set uid with FUSE
-o gid=<number> set gid with FUSE
-o dbglevel={err|wan|msg} set debug level affect only k2hftfuse
-o conf=<configuration file> specify configuration file(.ini .yaml .json) for k2hftfuse and all sub system
-o json=<json string> specify json string as configuration for k2hftfuse and all sub system
-o enable_run_chmpx run chmpx slave process
-o disable_run_chmpx do not run chmpx slave process(default)
-o chmpxlog=<log file path> chmpx log file path when k2hftfuse run chmpx
* k2hftfuse environments:
K2HFTCONFFILE specify configuration file(.ini .yaml .json) instead of conf option.
K2HFTJSONCONF specify json string as configuration instead of json option.
Please see man page - k2hftfuse(1) for more details.