InfiniDB のインストール on Linux (3)

*[InfiniDB のインストール on Linux (2)](http://qiita.com/nishimry/items/500b00ae1a1cf9673495) の続きで、Enterprise 用のツールをビルドした。*


##ファイル

```
shell cd work
shell> ll
合計 121380
drwxr-xr-x. 20 testuser testuser     4096  1月 11 13:00 2016 InfiniDB-4.6.6
-rw-r-----.  1 testuser testuser 35476700  7月 27 23:15 2015 InfiniDB-4.6.6.zip
-rw-r--r--.  1 testuser testuser 60094007 11月 10 10:17 2015 InfiniDB-Ent-4.6.6.source.tar.gz
drwxr-xr-x.  4 testuser testuser     4096  7月 14 22:04 2015 InfiniDB-Enterprise-4.6.6  <-- こいつが対象
-rw-r-----.  1 testuser testuser   120778  7月 27 23:16 2015 InfiniDB-Enterprise-4.6.6.zip
drwxr-xr-x. 32 testuser testuser     4096  1月  8 16:22 2016 InfiniDB-MySQL-4.6.6
-rw-r-----.  1 testuser testuser 28573919  7月 27 23:15 2015 InfiniDB-MySQL-4.6.6.zip
-rw-r--r--.  1 testuser testuser      374  7月 27 23:29 2015 README
lrwxrwxrwx.  1 testuser testuser       14  1月  8 16:31 2016 infinidb -> InfiniDB-4.6.6
lrwxrwxrwx.  1 testuser testuser       20  1月  8 16:27 2016 mysql -> InfiniDB-MySQL-4.6.6


shell> ll InfiniDB-Enterprise-4.6.6
合計 24
-rw-r--r--.  1 testuser testuser  551  7月 14 22:04 2015 Makefile
-rw-r--r--.  1 testuser testuser   62  7月 14 22:04 2015 README.md
drwxr-xr-x.  2 testuser testuser 4096  7月 14 22:04 2015 build
-rw-r--r--.  1 testuser testuser   29  7月 14 22:04 2015 buildFlags
-rw-r--r--.  1 testuser testuser 1985  7月 14 22:04 2015 rules.mak
drwxr-xr-x. 19 testuser testuser 4096  7月 14 22:04 2015 tools
```


##ビルドで読み込まれるファイルをローカル環境に合わせて修正

結果が不安だったので、InfiniDB をインストールした場所とは異なるところを指定した。

```
shell> cd InfiniDB-Enterprise-4.6.6
shell> vi rules.mak
```

```lang:rules.mak
SHELL=/bin/bash

TOP=$(HOME)/work/InfiniDB  <-- ここを今回インストールしようとしているパスに変更
EXPORT_ROOT=$(TOP)/export
INSTALL=cp --preserve=timestamps

CALPONT_INSTALL_ROOT=$(EXPORT_ROOT)

INSTALL_ROOT=$(CALPONT_INSTALL_ROOT)
INSTALL_ROOT_INCLUDE=$(INSTALL_ROOT)/include
INSTALL_ROOT_LIB=$(INSTALL_ROOT)/lib
INSTALL_ROOT_BIN=$(INSTALL_ROOT)/bin
INSTALL_ROOT_ETC=$(INSTALL_ROOT)/etc
INSTALL_ROOT_POST=$(INSTALL_ROOT)/post
INSTALL_ROOT_LOCAL=$(INSTALL_ROOT)/local
INSTALL_ROOT_MYSQL=$(INSTALL_ROOT)/mysql
INSTALL_ROOT_TOOLS=$(INSTALL_ROOT)/tools
INSTALL_ROOT_DATDUP=$(INSTALL_ROOT)/gluster
INSTALL_MIB=$(INSTALL_ROOT)/share/snmp/mibs

CALPONT_LIBRARY_PATH=$(EXPORT_ROOT)/lib
CALPONT_INCLUDE_PATH=$(EXPORT_ROOT)/include

IDB_WRITE_LIBS=-lddlpackageproc -lddlpackage -ldmlpackageproc -ldmlpackage -lwriteengine -lwriteengineclient \
-lcompress -lcacheutils
IDB_SNMP_LIBS=-lnetsnmpagent -lnetsnmp -lnetsnmpmibs -lnetsnmphelpers
IDB_COMMON_LIBS=-lwindowfunction -ljoblist -lexecplan -ljoiner -lrowgroup -lfuncexp -ludfsdk \
-loamcpp -lsnmpmanager -ldataconvert -lbrm -lcacheutils -lmessageqcpp -lloggingcpp -lconfigcpp -lrwlock \
-lcommon -lcompress -lxml2 -lidbboot -lboost_idb -lmysqlcl_idb -lquerystats -lquerytele -lthrift \
-lidbdatafile $(IDB_SNMP_LIBS)

LDFLAGS=-Wl,--no-as-needed

#DEBUG_FLAGS=-ggdb3
DEBUG_FLAGS=-g0 -O3 -fno-strict-aliasing

ifeq (4.5,$(shell test -x /usr/local/gcc45/bin/gcc && /usr/local/gcc45/bin/gcc --version | awk '/^gcc/ {print $$3}' | cut -c1-3))
        export LD_LIBRARY_PATH=/usr/local/gcc45/lib64:/usr/local/gmp43/lib:/usr/local/mpfr24/lib:/usr/local/mpc08/lib
        export PATH=/usr/local/gcc45/bin:/usr/local/bin:/bin:/usr/bin
        CC=/usr/local/gcc45/bin/gcc
        CXX=/usr/local/gcc45/bin/g++
        ifeq (-O3,$(findstring -O3,$(DEBUG_FLAGS)))
                DEBUG_FLAGS+=-flto
        endif
endif

#Use only the last, non-comment line from MyDebugFlags file
LOCAL_DEBUG_FLAGS=$(shell test -f $(TOP)/MyDebugFlags && awk '/^[^\#]/ {last=$$0}END{print last}' $(TOP)/MyDebugFlags)
ifneq (,$(LOCAL_DEBUG_FLAGS))
        DEBUG_FLAGS=$(LOCAL_DEBUG_FLAGS)
endif
```


##とりあえず make してみる

```
shell> make all
build/bootstrap
bootstrapping tools
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' に入ります
if [ bootstrap != all ]; \
		then target=bootstrap; \
	fi; \
	for prog in dumpcol dumpVss redistributeDB prat SesMgr dumpobm editTxn evalcol dbsizereport oid2file healthcheck dbhealth profile datdup dbrm; \
		do make -C $prog $target || exit 1; \
	done
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpcol' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpcol' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpVss' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpVss' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/redistributeDB' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/redistributeDB' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/prat' に入ります
umask 002; \
	mkdir -p /home/testuser/work/InfiniDB/export/tools; \
	pushd /home/testuser/work/InfiniDB/export/tools >/dev/null; \
		rm -f copy2here.sh getlogs.sh getps.sh getuserinput.sh prat ps README getmodules.sh getsar.sh prat.sh pscollect tarfiles.sh; \
	popd >/dev/null; \
	cp --preserve=timestamps copy2here.sh getlogs.sh getps.sh getuserinput.sh prat ps README getmodules.sh getsar.sh prat.sh pscollect tarfiles.sh /home/testuser/work/InfiniDB/export/tools
pushd /home/testuser/work/InfiniDB/export/tools >/dev/null; \
	chmod -f 555 copy2here.sh getlogs.sh getps.sh getuserinput.sh prat ps README getmodules.sh getsar.sh prat.sh pscollect tarfiles.sh; \
	popd >/dev/null
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/prat' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/SesMgr' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/SesMgr' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpobm' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpobm' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/editTxn' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/editTxn' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/evalcol' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/evalcol' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbsizereport' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbsizereport' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/oid2file' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/oid2file' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/healthcheck' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/healthcheck' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbhealth' に入ります
umask 002; \
	mkdir -p /home/testuser/work/InfiniDB/export/bin; \
	pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		rm -f dbhealth.sh dbhealth.sql; \
	popd >/dev/null; \
	cp --preserve=timestamps dbhealth.sh dbhealth.sql /home/testuser/work/InfiniDB/export/bin
pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		chmod -f 555 dbhealth.sh dbhealth.sql; \
	popd >/dev/null
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbhealth' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/profile' に入ります
umask 002; \
	mkdir -p /home/testuser/work/InfiniDB/export/bin; \
	pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		rm -f dbprof.pl displayJobGraph.sh; \
	popd >/dev/null; \
	cp --preserve=timestamps dbprof.pl displayJobGraph.sh /home/testuser/work/InfiniDB/export/bin
pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		chmod -f 555 dbprof.pl displayJobGraph.sh; \
	popd >/dev/null
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/profile' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/datdup' に入ります
umask 002; \
	mkdir -p /home/testuser/work/InfiniDB/export/bin; \
	pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		rm -f glusteradd glusterctl glusterconf; \
	popd >/dev/null; \
	cp --preserve=timestamps glusteradd glusterctl glusterconf /home/testuser/work/InfiniDB/export/bin
pushd /home/testuser/work/InfiniDB/export/bin >/dev/null; \
		chmod -f 555 glusteradd glusterctl glusterconf; \
	popd >/dev/null
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/datdup' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbrm' に入ります
make[2]: `bootstrap' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbrm' から出ます
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' から出ます
cd tools && make && make install
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' に入ります
if [ all != all ]; \
		then target=all; \
	fi; \
	for prog in dumpcol dumpVss redistributeDB prat SesMgr dumpobm editTxn evalcol dbsizereport oid2file healthcheck dbhealth profile datdup dbrm; \
		do make -C $prog $target || exit 1; \
	done
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpcol' に入ります
dumputils.cpp:22:24: error: bytestream.h: そのようなファイルやディレクトリはありません
dumputils.cpp:25:23: error: configcpp.h: そのようなファイルやディレクトリはありません
dumputils.cpp:28:25: error: dataconvert.h: そのようなファイルやディレクトリはありません
dumputils.cpp:31 から include されたファイル中:
dumputils.h:21:25: error: IDBDataFile.h: そのようなファイルやディレクトリはありません
dumputils.cpp:34:25: error: idbcompress.h: そのようなファイルやディレクトリはありません
dumputils.cpp:37:23: error: IDBPolicy.h: そのようなファイルやディレクトリはありません
dumputils.cpp:40:26: error: joblisttypes.h: そのようなファイルやディレクトリはありません
dumputils.cpp:41:23: error: blocksize.h: そのようなファイルやディレクトリはありません
dumputils.cpp:42:21: error: we_type.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:16:24: error: bytestream.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:19:23: error: blocksize.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:20:23: error: IDBPolicy.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:22 から include されたファイル中:
dumputils.h:21:25: error: IDBDataFile.h: そのようなファイルやディレクトリはありません
g++ -g0 -O3 -fno-strict-aliasing -Wall -I/home/testuser/work/InfiniDB/export/include -I/usr/include/libxml2  -c -o dumpcol.o dumpcol.cpp
dumpcol.cpp:16:24: error: bytestream.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:19:23: error: blocksize.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:20:23: error: IDBPolicy.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:22 から include されたファイル中:
dumputils.h:21:25: error: IDBDataFile.h: そのようなファイルやディレクトリはありません
dumpcol.cpp:17: error: 'messageqcpp' is not a namespace-name
dumpcol.cpp:17: error: expected namespace-name before ';' token
In file included from dumpcol.cpp:22:
dumputils.h:64: error: 'uint64_t' does not name a type
dumputils.h:65: error: 'uint64_t' does not name a type
dumputils.h:66: error: 'messageqcpp' has not been declared
dumputils.h:66: error: expected ',' or '...' before '&' token
dumputils.h:68: error: 'uint64_t' does not name a type
dumputils.h:69: error: 'uint64_t' does not name a type
dumputils.h:70: error: 'uint64_t' does not name a type
dumputils.h:71: error: 'uint64_t' does not name a type
dumputils.h:72: error: 'uint64_t' does not name a type
dumputils.h:73: error: 'uint64_t' does not name a type
dumputils.h:74: error: 'uint64_t' does not name a type
dumputils.h:75: error: 'uint64_t' does not name a type
dumputils.h:76: error: 'uint64_t' does not name a type
dumputils.h:77: error: 'uint64_t' does not name a type
dumputils.h:78: error: 'uint64_t' does not name a type
dumputils.h:79: error: 'uint64_t' does not name a type
dumputils.h:80: error: 'uint64_t' does not name a type
dumputils.h:81: error: 'uint64_t' does not name a type
dumputils.h:82: error: 'uint64_t' does not name a type
dumputils.h:89: error: 'uint64_t' does not name a type
dumputils.h:90: error: 'int64_t' does not name a type
dumputils.h:91: error: 'int64_t' does not name a type
dumputils.h:92: error: 'uint64_t' does not name a type
dumputils.h:93: error: 'uint64_t' does not name a type
dumputils.h:96: error: 'uint64_t' does not name a type
dumputils.h:97: error: 'uint64_t' does not name a type
dumputils.h:98: error: 'uint64_t' does not name a type
dumputils.h:99: error: 'uint64_t' does not name a type
dumputils.h:100: error: 'uint64_t' does not name a type
dumputils.h:101: error: 'uint64_t' does not name a type
dumputils.h: In constructor 'dumputils::DbDumper::DbDumper(dumputils::DbDumper::DbColType, bool, bool, dumputils::DbDumper::DisplayType)':
dumputils.h:54: error: class 'dumputils::DbDumper' does not have any field named 'fCumulativeCnt'
dumputils.h:55: error: class 'dumputils::DbDumper' does not have any field named 'fMinIntVal'
dumputils.h:55: error: class 'dumputils::DbDumper' does not have any field named 'fMaxIntVal'
dumputils.h:56: error: class 'dumputils::DbDumper' does not have any field named 'fMinuint32_tVal'
dumputils.h:56: error: class 'dumputils::DbDumper' does not have any field named 'fMaxuint32_tVal'
dumputils.h:58: error: class 'dumputils::DbDumper' does not have any field named 'fFirstMinVal'
dumputils.h:58: error: class 'dumputils::DbDumper' does not have any field named 'fFirstMaxVal'
dumputils.h:59: error: class 'dumputils::DbDumper' does not have any field named 'fNullCnt'
dumputils.h:59: error: class 'dumputils::DbDumper' does not have any field named 'fEmptyCnt'
dumputils.h:59: error: class 'dumputils::DbDumper' does not have any field named 'fValueCnt'
dumputils.h:59: error: class 'dumputils::DbDumper' does not have any field named 'fTotallyEmptyBlks'
dumpcol.cpp: At global scope:
dumpcol.cpp:25: error: 'idbdatafile' is not a namespace-name
dumpcol.cpp:25: error: expected namespace-name before ';' token
dumpcol.cpp:43: error: 'BLOCK_SIZE' was not declared in this scope
dumpcol.cpp: In function 'int main(int, char**)':
dumpcol.cpp:189: error: 'IDBDataFile' was not declared in this scope
dumpcol.cpp:189: error: 'pFile' was not declared in this scope
dumpcol.cpp:190: error: 'IDBPolicy' has not been declared
dumpcol.cpp:193: error: 'IDBDataFile' is not a class or namespace
dumpcol.cpp:193: error: 'IDBDataFile' is not a class or namespace
dumpcol.cpp:196: error: 'IDBDataFile' is not a class or namespace
dumpcol.cpp:196: error: 'IDBDataFile' is not a class or namespace
dumpcol.cpp:214: error: 'uint64_t' was not declared in this scope
dumpcol.cpp:214: error: expected ';' before 'cmagic'
dumpcol.cpp:215: error: 'cmagic' was not declared in this scope
dumpcol.cpp:220: error: type '<type error>' argument given to 'delete', expected pointer
dumpcol.cpp:227: error: 'uint64_t' was not declared in this scope
dumpcol.cpp:227: error: expected ';' before 'blockNo'
dumpcol.cpp:230: error: 'blockNo' was not declared in this scope
dumpcol.cpp:230: error: 'class dumputils::DbDumper' has no member named 'procComp'
dumpcol.cpp:238: error: type '<type error>' argument given to 'delete', expected pointer
dumpcol.cpp:244: error: 'idbassert' was not declared in this scope
dumpcol.cpp:246: error: 'blockNo' was not declared in this scope
dumpcol.cpp:246: error: 'class dumputils::DbDumper' has no member named 'procUncomp'
dumpcol.cpp:249: error: 'blockNo' was not declared in this scope
dumpcol.cpp:254: error: type '<type error>' argument given to 'delete', expected pointer
make[2]: *** [dumpcol.o] エラー 1
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dumpcol' から出ます
make[1]: *** [all] エラー 1
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' から出ます
make: *** [compile] エラー 2
```

そう簡単にはいきませんね。includeファイルディレクトリが合ってない。

前回インストールした InfiniDB のパスに合わせて修正する。

定義を修正しようかとも思ったが、今回はDBとは別の完全作業用ディレクトリにキットを
展開しようとしているので、ファイルに記載されている include/lib のパスにリンクを置く
ことにした。

```
shell> cd $HOME/work/InfiniDB/export
shell> ln -s $HOME/work/InfiniDB/include include
shell> ln -s $HOME/work/InfiniDB/lib lib
```

##再 make

```
shell> make all
build/bootstrap
bootstrapping tools
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' に入ります
if [ bootstrap != all ]; \
		then target=bootstrap; \
	fi; \
	for prog in dumpcol dumpVss redistributeDB prat SesMgr dumpobm editTxn evalcol dbsizereport oid2file healthcheck dbhealth profile datdup dbrm; \
		do make -C $prog $target || exit 1; \
	done

...

make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/datdup' から出ます
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbrm' に入ります
mkdir -p /home/testuser/work/InfiniDB/export/bin
cp --preserve=timestamps print_journal /home/testuser/work/InfiniDB/export/bin
make[2]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools/dbrm' から出ます
make[1]: ディレクトリ `/home/testuser/work/InfiniDB/InfiniDB-Enterprise-4.6.6/tools' から出ます
echo  -g0 -O3 -fno-strict-aliasing > buildFlags
```


問題なくメイク完了。

インストール先を確認。

```
shell> ll $HOME/work/InfiniDB/export/bin
合計 1356
-rwxr-xr-x. 1 testuser testuser  96758  1月 28 11:08 2016 SesMgr
-rwxr-xr-x. 1 testuser testuser 166892  1月 28 11:08 2016 databaseSizeReport
-r-xr-xr-x. 1 testuser testuser   1301  7月 14 22:04 2015 dbhealth.sh
-r-xr-xr-x. 1 testuser testuser    324  7月 14 22:04 2015 dbhealth.sql
-r-xr-xr-x. 1 testuser testuser  70253  7月 14 22:04 2015 dbprof.pl
-r-xr-xr-x. 1 testuser testuser   1106  7月 14 22:04 2015 displayJobGraph.sh
-rwxr-xr-x. 1 testuser testuser  97287  1月 28 11:08 2016 dumpVss
-rwxr-xr-x. 1 testuser testuser 131804  1月 28 11:08 2016 dumpcol
-rwxr-xr-x. 1 testuser testuser  86956  1月 28 11:08 2016 dumpobm
-rwxr-xr-x. 1 testuser testuser  91947  1月 28 11:08 2016 editTxn
-rwxr-xr-x. 1 testuser testuser 132316  1月 28 11:08 2016 evalcol
-rwxr-xr-x. 1 testuser testuser    739  7月 14 22:04 2015 file2oid.pl
-r-xr-xr-x. 1 testuser testuser   5259  7月 14 22:04 2015 glusteradd
-r-xr-xr-x. 1 testuser testuser  10548  7月 14 22:04 2015 glusterconf
-r-xr-xr-x. 1 testuser testuser   4022  7月 14 22:04 2015 glusterctl
-rwxr-xr-x. 1 testuser testuser 121073  1月 28 11:08 2016 healthcheck
-rwxr-xr-x. 1 testuser testuser  86280  1月 28 11:08 2016 oid2file
-rwxr-xr-x. 1 testuser testuser  86051  1月 28 11:09 2016 print_journal
-rwxr-xr-x. 1 testuser testuser 150686  1月 28 11:08 2016 redistributeDB

shell> ll $HOME/work/InfiniDB/export/tools
合計 52
-r-xr-xr-x. 1 testuser testuser 1838  7月 14 22:04 2015 README
-r-xr-xr-x. 1 testuser testuser 1513  7月 14 22:04 2015 copy2here.sh
-r-xr-xr-x. 1 testuser testuser 1958  7月 14 22:04 2015 getlogs.sh
-r-xr-xr-x. 1 testuser testuser 1363  7月 14 22:04 2015 getmodules.sh
-r-xr-xr-x. 1 testuser testuser 4352  7月 14 22:04 2015 getps.sh
-r-xr-xr-x. 1 testuser testuser 2631  7月 14 22:04 2015 getsar.sh
-r-xr-xr-x. 1 testuser testuser 1480  7月 14 22:04 2015 getuserinput.sh
-r-xr-xr-x. 1 testuser testuser   97  7月 14 22:04 2015 prat
-r-xr-xr-x. 1 testuser testuser 1556  7月 14 22:04 2015 prat.sh
-r-xr-xr-x. 1 testuser testuser   81  7月 14 22:04 2015 ps
-r-xr-xr-x. 1 testuser testuser  624  7月 14 22:04 2015 pscollect
-r-xr-xr-x. 1 testuser testuser  522  7月 14 22:04 2015 tarfiles.sh
```


できた！

後は、./~bash_profile にここの PATH を通して完了！