2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ひっそり NYSOL:Mコマンドがバージョンアップしてた件について

Last updated at Posted at 2017-10-06

一部の界隈ではとても人気のあるNYSOL:Mコマンドですが、実はVersion3が最近ひっそり公開されています。

注意
※10月6日の段階ではMacでかつXcode9では、ビルドが通りません。Xcode8ではビルドが通ります。
どうしても更新したい場合は、Xcode8にダウングレードしてみてください。

開発者に対応いただき、少し手を加えることで、Buildが通るようになりました。
対応方法は「Xcode9でうまくビルドできない場合」を確認ください。

NYSOLって何

NYSOLはCSVデータの高速加工と大学の先生方が考えた最先端のアルゴリズムを無償提供するコマンド群です。
幾つかのパッケージに分かれています。

最新版はどこにあるのか

GitHubにあります。↓
https://github.com/nysol/mcmd

何が変わったのか?

リファレンスマニュアルによるとv3はGitHub登録とのこと。
その他の改訂としては以下が在るようです。(詳しくはリファレンスマニュアルを見てください。)

  • 幾つかのコマンドのパラーメーター仕様の変更
  • -paramsパラメータ(各コマンドのパラメータリストの出力)の追加
  • mdformatでミリ秒対応
  • 幾つかのコマンドの追加
  • bugfix

インストール方法

GitHubのREADMEを見ていただくか(英語)、READMEの日本語版であるHome · nysol/mcmd Wiki
見ていただければ、インストールできるようになっていますので、そちらを参照いただきたい。
ざっくり、前提となるライブラリ(c++boost, lib2xml)などが導入されていれば

git clone https://github.com/nysol/mcmd.git
cd mcmd

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

で、導入できます。

Xcode9でうまくビルドできない場合

10月6日の段階ではMacでかつXcode9では、ビルドが通らず

kgwindow.lo kgxml2csv.lo ../../src/kgmod/libkgmod3.la -lboost_filesystem -lboost_system -lboost_regex -lpthread
libtool: link: g++ -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libmcmd3.1.dylib  .libs/kgaccum.o .libs/kgarff2csv.o .libs/kgavg.o .libs/kgbest.o .libs/kgbucket.o .libs/kgcal.o .libs/kgcat.o .libs/kgchgnum.o .libs/kgchgstr.o .libs/kgchkcsv.o .libs/kgcombi.o .libs/kgcommon.o .libs/kgcount.o .libs/kgcross.o .libs/kg2cross.o .libs/kgcsv2arff.o .libs/kgcsv2json.o .libs/kgcsvconv.o .libs/kgcut.o .libs/kgdata.o .libs/kgdformat.o .libs/kgdelnull.o .libs/kgdsp.o .libs/kgduprec.o .libs/kgfldname.o .libs/kgfsort.o .libs/kghashavg.o .libs/kghashsum.o .libs/kginput.o .libs/kgjoin.o .libs/kgkeybreak.o .libs/kgmbucket.o .libs/kgmseldsp.o .libs/kgmvavg.o .libs/kgmvsim.o .libs/kgmvstats.o .libs/kgnewnumber.o .libs/kgnewrand.o .libs/kgnewstr.o .libs/kgnjoin.o .libs/kgnormalize.o .libs/kgnrcommon.o .libs/kgnrjoin.o .libs/kgnullto.o .libs/kgnumber.o .libs/kgpadding.o .libs/kgpaste.o .libs/kgproduct.o .libs/kgrand.o .libs/kgrjoin.o .libs/kgminput.o .libs/kgsed.o .libs/kgsel.o .libs/kgseldsp.o .libs/kgselrand.o .libs/kgselstr.o .libs/kgselnum.o .libs/kgsep.o .libs/kgsep2.o .libs/kgsetstr.o .libs/kgshare.o .libs/kgshuffle.o .libs/kgsim.o .libs/kgslide.o .libs/kgsplit.o .libs/kgstats.o .libs/kgsum.o .libs/kgsummary.o .libs/kgtab2csv.o .libs/kgtee.o .libs/kgtonull.o .libs/kgtra.o .libs/kgtrafld.o .libs/kgtraflg.o .libs/kguniq.o .libs/kgvcat.o .libs/kgvcommon.o .libs/kgvcount.o .libs/kgvdelim.o .libs/kgvjoin.o .libs/kgvnullto.o .libs/kgvdelnull.o .libs/kgvreplace.o .libs/kgvsort.o .libs/kgvuniq.o .libs/kgwindow.o .libs/kgxml2csv.o   -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib -lxml2 -lz -licucore -lm ../../src/kgmod/.libs/libkgmod3.dylib -lboost_filesystem -lboost_system -lboost_regex -lpthread  -g -O2   -install_name  /usr/local/lib/libmcmd3.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module
ld: file not found: /usr/lib/system/libsystem_darwin.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libmcmd3.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

というエラーが出ることがわかっています。
情報お持ちの方いれば連絡ください。

なお、Ubuntu,Xcode8ではビルドが通ることは確認できています。

開発者に対応いただき、ビルドが通るようになりました。
開発者いわくlibxml関係でうまくリンクできなかったとのこと、

MAC, Xcode9の方は最新のものをクローンし直して、以下のようにconfigureのオプションを変更してみてください。

git clone https://github.com/nysol/mcmd.git
cd mcmd

aclocal
autoreconf -i
automake --add-missing
./configure --with-libxml2header=/usr/include/libxml2 --with-libxml2=/usr/lib
make
sudo make install

当方の環境で場ビルドができました。

boostの最新版を導入する場合

Boost C++ Librariesより最新パッケージをダウンロードし、

wget https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz # 2017-10-5時点最新
tar zxvf boost_1_65_1.tar.gz
cd boost_1_65_1
./bootstrap.sh
mkdir $HOME/local
./b2 install --prefix=$HOME/local   #prefixは適宜変更してください

詳細なビルドオプションなどはBoostライブラリのビルド方法 - boostjpを参考にすればいいと思います。

その他

Mコマンド以外の対応はまだ終わってないようにも聞いていますし、一部のコマンドの仕様が変わっていますので、v2を使っている方が乗り換えるのがいいのかどうかは、それぞれの状況次第かなとは思います。
面白い取り組みとしては、[Pythonとバインディングするライブラリ]
(https://github.com/nysol/nysol_python)が登録されていることでしょうか、Ruby同様にPythonを通して実行できる日がやってきました。
今後が楽しみですね。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?