[ubuntu-jp:6516] bsfilter が動作しない

Yoshinaga Hiroyuki yoshinaga.hiroyuki @ nifty.com
2022年 6月 12日 (日) 04:04:10 UTC


件名のとおりなのですが
> $ lsb_release -a
> No LSB modules are available.
> Distributor ID:	Ubuntu
> Description:	Ubuntu 22.04 LTS
> Release:	22.04
> Codename:	jammy
> $ uname -a
> Linux xxx 5.15.0-37-generic #39-Ubuntu SMP Wed Jun 1 19:16:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
の環境だと、bsfilter でスコアは付けられるのですが、学習ができません
Ubuntu 21.10 では問題なく動作していました

実際に試すと、例えば次のようになります
> bsfilter --sub-clean --add-spam --insert-flag --insert-probability --update hoge
> <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- sdbm (LoadError)
> Did you mean?  dbm
>   from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
>   from /usr/bin/bsfilter:3106:in `get_options'
>   from /usr/bin/bsfilter:3262: in `setup'
>   from /usr/bin/bsfilter:3413:in `<main>'

原因は、Ruby 3.0 で SDBM が標準ライブラリから削除されたからだと思います

Ubuntu のパッケージには Ruby の SDBM ライブラリがないようなので、現状次のようにする必要が有るようです
sudo apt install ruby-dev
sudo gem sdbm

それでは失礼します

-- 
吉永博之
yoshinaga.hiroyuki at nifty.com



ubuntu-jp メーリングリストの案内