native extensionを別なディレクトリに配置するディストリビューションがあるのでrequire_relativeするとLoadErrorになる
Rocky LinuxでdnfでインストールしたRubyで、 gem install native_extesionsなgem すると、native extensionsを/usr/local/lib64/gems以下に、通常のRubyスクリプトを/usr/local/share/gems以下に分けて配置される。そのため、Rubyスクリプトからnative extensionsをrequire_relativeで読み込もうとすると、全然違うディレクトリに配置されてるので見つけられずに、LoadErrorになる。おそらく他のRedHat系のLinuxもそうなんだろう。miseでローカルにインストールしてるRubyとかなら、同じ場所に配置される。なので、native exteionsはrequire_relativeじゃなくて、requireしよう。 bundle gem --ext=c hoge で作られるスクリプトでは、require_relativeを使っているので要注意だ。
追記 2025/12/10
Numo::NArrayは、PythonでいうところのNumpyで、Rubyで機械学習…
概要 llama.cppのRuby bindingsであるllama_cpp.rbでもLlama2が…
はじめに タイトルのとおり。RBSによる型注釈が提供されている…
はじめに タイトルのとおり。色々あって仕事でのタイプ量が急増…
はじめに Rubyの機械学習ライブラリであるRumaleに、非負最小二…