macbookairにnysol（にそる）をインストールしてみる

# イントロ

japanR2015参加してきました！
個人的にはLTが濃すぎて、メインの発表に負けてないのが面白かった。
んで、その懇親会にてKobe.Rの主催kawa（※）さんから本情報をいただきましたので、
早速やってみよう！と思ったと同時に、布教を目的に。
※ちなみに主催者の方というのは後で気がついてガタガタしております。。。

# ってかnysolってなに？

読み方は「にそる」
公式ページ[nysol](http://www.nysol.jp/)によりますと。

>大規模な表構造データ（CSVデータ）を効率よく処理する目的で開発されたオープンソースのコマンド群である。一般のPCでも数千万件〜数億件のCSVデータを処理できる。

・・・ん？

>一般のPCでも数千万件〜数億件のCSVデータを処理できる。

はい？

>**一般のPC**でも**数千万件〜数億件**のCSVデータを処理できる。

工工工ｴｴｴｴｴｴｪｪｪｪｪｪ(ﾟДﾟ)ｪｪｪｪｪｪｴｴｴｴｴｴ工工工
というわけで、さようならExcel、Acceess。

# dmgによるインストール
**結果的にはrvmが入っていると失敗するようです。
という訳でこの章は読み飛ばしてもOK。**
ソースインストールする場合、アンケート回答後に表示されるURLから「nysol-2.3.1.tar.gz」をダウンロードしておきましょう。

〜〜〜以下、失敗の記録〜〜〜

まずはユーザ登録をする必要がありますので、そちらをすませましてと。
※詳細は略しますが、メールアドレス登録、氏名登録、利用目的等を聞かれました。
nysol-2.3.1.dmgをダウンロードしました。

が、

![スクリーンショット 2015-12-06 16.21.15.png](https://qiita-image-store.s3.amazonaws.com/0/31156/5dc3e128-f3b6-78ad-fdb3-6abc4a074376.png)

インストール失敗！ヒャッハー！！！

公式ページにヒントは、ヒントはないのかと、
探したところばっちり書いてありました。

>rubyのバージョンは2.0.0p247で動作の確認はとれている。ただし、rvmがインストールされた環境ではうまくインストールできない。よってrvm環境でインストールするにはソースインストールを実行する必要がある

うちのmacちゃんrvmはいってるわぁ。。。
「ドキュメントくらい読めやカス！」とののしられそうですが、
それくらいではめげません。
むしろ気持ちいいです。

# 実施したインストールコマンド

公式[インストール](http://www.nysol.jp/install)ページの「4) ソースインストール」を参考に下記を実施しました。
なお、アンケート回答後に表示されるURLから「nysol-2.3.1.tar.gz」をダウンロードしておき、解凍しておきましょう

```
tar xvfz nysol-2.3.1.tar.gz
cd nysol-2.3.1
```

## 実施した環境
OS X ver：10.8.5
ruby:rvmでruby-2.0.0-p247に調整
なお、公式には「Mac OS X 10.9.2 (Marverix)」でのみ動作環境確認済みとのことなので、人柱確定。

## 4-1) 開発環境

>xcodeのインストール後、Command Line Toolsのインストールも必要

という事でしたので、Command Line Toolsが入っている事を確認し、この章は完了。

## 4-2) C++ boostライブラリのインストール

公式まんまの下記コマンドを実施。
※コマンド完了まで20分以上かかりました。

```zsh
wget http://sourceforge.net/projects/boost/files/boost/1.52.0/boost_1_52_0.tar.gz
tar zxvf boost_1_52_0.tar.gz
cd boost_1_52_0
./bootstrap.sh
./bjam
sudo ./bjam install
```

## 4-3) libxml2, libiconvのインストール

>Mac Marverixには、元から両ライブラリはインストールされているため、この手順はスキップして問題ない。
/usr/libにlibxml2.dylibとlibiconv.dylibがあるはずで、なければ新たにインストールする必要がある。
インストールされていなければ、以下のサイトからインストールする。
libxml2 : http://xmlsoft.org/
libiconv : https://www.gnu.org/software/libiconv/

ハハッ！！バージョンアップシテナカッタヨ。。
というわけで下記を実施

### libxml2のインストール

まずは、リンク先が英語できょどりましたが、、
brewを入れていたので、infoでNotInstalledを確認後、以下を実施しました。

```zsh
brew info libxml2
brew install libxml2                                                                 
```

### libiconvのインストール

上記同様に

```zsh
brew info libiconv
brew install libiconv
```

### 4-4) nysolのコンパイル＆インストール

やっとたどり着いた
>rubyのバージョンは2.0.0p247で動作の確認はとれている。

という事を思い出し、rvmから利用するrubyのバージョンを慌てて変更する

```zsh
rvm use ruby-2.0.0-p247
```

ここから公式通りのコマンドを実施
makeに大体15分程度
installに大体1分程度

```zsh
aclocal ; autoreconf -i ; automake --add-missing
./configure
make
sudo make install
```

# 動作確認
これも公式通りで、下記を実施した。

```zsh
mcut --help
mitemset.rb --help 
```

キタ！！！動いた！！！

```shell-session:実施結果
mcut 項目の選択
===============
指定した項目を選択する。
-rオプションを付けると、指定した項目を削除する。

書式
----
mcut f= [-r] [-nfni] [i=] [o=] [-nfn] [-nfno] [-x] [--help][--version]  

パラメータ
・・・・省略

----------------------------
mitemset.rb version 1.1
----------------------------
概要) LCMにより多頻度アイテム集合を列挙する
特徴) 1) 分類階層を扱うことが可能
      2) 頻出パターン, 飽和頻出パターン, 極大頻出パターンの３種類のパターンを列挙可能
      3) クラスを指定することで、上記3パターンに関する顕在パターン(emerging patterns)を列挙可能
書式) mitemset.rb i= [x=] [c=] [O=] [tid=] [item=] [taxo=] [class=] [type=] [s=] [S=] [l=] [u=] [p=] [top=] [-replaceTaxo] [T=] [--help]

例) mitemset.rb i=basket.csv tid=traID item=商品
```

# 次のステップ
まだすべてのコマンドをテストした訳ではないので何ともですが、
一つ目の山を超えました。正直ここからが本番だと思います。
という訳で、まずは数千万、数億件のデータ作んなきゃ♩（白目

・・・・だれか、、、数億件のデータくれないすかね。