mitemset.rb実行時にmcsvin.so (LoadError)が出たら注意
/home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': libruby-1.9.1.so.1.9: cannot open shared object file: No such file or directory - /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-2.0.2-x86_64-linux/lib/nysol/mcsvin.so (LoadError)
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-2.0.2-x86_64-linux/lib/nysol/margs.rb:24:in `<module:MCMD>'
from /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-2.0.2-x86_64-linux/lib/nysol/margs.rb:21:in `<top (required)>'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-2.0.2-x86_64-linux/lib/nysol/mcmd.rb:31:in `<top (required)>'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `require'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-take-2.0.2-x86_64-linux/lib/nysol/traDB.rb:5:in `<top (required)>'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/hoge/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/hoge/lib/ruby/gems/2.4.0/gems/nysol-take-2.0.2-x86_64-linux/bin/mitemset.rb:6:in `<top (required)>'
from /home/hoge/bin/mitemset.rb:23:in `load'
from /home/hoge/bin/mitemset.rb:23:in `<main>'
原因
c++boostのバージョンが高すぎることです。
バージョン1.6.Xで幾つかのboostのライブラリでUblasの使用をやめています。
ところが、mcsvin.soで、Ublasを使用していることから、ロードエラーが発生しています。
※ソースをビルドする場合はビルドがコケます。
解決方法
- boostのバージョンを落とす。
自分の環境では1.5.9まで動作確認しました。
- 対応されるまで竹コマンドは使わない。
MCMD群ではこの問題が発生していないので、竹コマンドだけの問題と思われます。
記憶にとどめるだけでもいいのかも。
ubuntu17ではlibboost-devのバージョンが1.62になっており、注意が必要です。