今話題のDatをインストールしてみたのでメモ。
Datとは
ビッグデータのためのgit
、みたいな感じらしい。
gitだと扱えないような重いファイルを扱ったり、 データ形式がいろいろ変換できたり、という感じ。 (あんまり詳しく説明読んでない)
インストール(までの試行錯誤)
ふつうに
pkg install npm npm install dat -g
でさくっとインストールできると思いきや、なんかエラーが出ます。
... > node-gyp rebuild gyp ERR! build error gyp ERR! stack Error: not found: gmake gyp ERR! stack at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:43:28) gyp ERR! stack at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:46:29) gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/which/which.js:57:16 gyp ERR! stack at Object.oncomplete (fs.js:107:15) gyp ERR! System FreeBSD 10.0-RELEASE gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gmake
入れてなかったかららしい。
pkg install gmake
でインストールして、気を取り直してもう一度やってみます。 すると、
... > node-gyp rebuild gmake: Entering directory `/usr/local/lib/node_modules/dat/node_modules/leveldown/build' CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.14.0/db/builder.o gmake: g++: Command not found gmake: *** [Release/obj.target/leveldb/deps/leveldb/leveldb-1.14.0/db/builder.o] Error 127 gmake: Leaving directory `/usr/local/lib/node_modules/dat/node_modules/leveldown/build' gyp ERR! build error gyp ERR! stack Error: `gmake` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:12) gyp ERR! System FreeBSD 10.0-RELEASE gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
g++
がない、だと。。
と思ってぐぐると、こんなのが引っかかりました。
node-sqlite3 doesn't install on freebsd 10 due to g++ · Issue #250 · mapbox/node-sqlite3 · GitHub
It looks like you might be able to workaround this also by doing export LINK=clang++.
どうも、コンパイラをg++
じゃなくてclang++
にするようにしないといけないみたいです。
デフォルトのコンパイラがclangになってるFreeBSDあるあるですね。
やり方はいろいろあるみたいですが、上のやつの2つ下のコメントにある
ln -s /usr/bin/clang++ /usr/local/bin/g++
をやってみたらうまくいきました。
ということで、思ったよりすんなり(?)インストールできました。
使ってみる
ちょっとUsage見ながら、使い方を試してみます。
ローカルで動かす
まず、dat
のデータを溜めるディレクトリをつくってinitします。(この辺git
っぽい)
mkdir some_great_big_data cd some_great_big_data dat init
次に、データを放り込みます。
echo '{"hello": "me"}' | dat --json
すると、こんな感じの結果が返ってきます。
{"_id":"2014-04-05T13:00:00.583Z-f1bf9841","_rev":"1-83d5a5e19eccf9da5b3003ac548c849"}
現在datに入っているデータを表示するには、
dat cat
とかします。
dat server
また、ローカルだけではなくて、gitのような分散管理システムにも使えます。
dat serve
とすると、datサーバーが立ち上がります。
別のディレクトリで
dat init --remote=http://localhost:6461
とかやると、dat serveしているdatとデータが同期されます。
で、これを編集してpushしたり、とかいうgitっぽいことができるみたいです。 (ためすのめんどくさくなってきたので以降未確認。。)
で、実際使うの?
gitにgithubがあるように、datにも「dathub」があれば。