我不得不在一个插件中安装 eth gem,但遇到了很大的困难。它依赖于许多其他 gem,其中一些 gem 包含原生扩展。如果你想尝试一下,这是依赖列表。
gem 'pkg-config', '1.4.7', require: false
gem 'mkmfmf', '0.4', require: false
gem 'keccak', '1.3.0', require: false
gem 'zip', '2.0.2', require: false
gem 'mini_portile2', '2.7.0', require: false
gem 'rbsecp256k1', '5.1.0', require: false
gem 'konstructor', '1.0.2', require: false
gem 'ffi', '1.15.5', require: false
gem 'ffi-compiler', '1.0.1', require: false
gem 'scrypt', '3.0.7', require: false
gem 'eth', '0.5.1', require: false
gem 'siwe', '1.0.0', require: false
问题出在 rbsecp256k1。它试图要求 mini_portile2 来构建其原生扩展,但即使它已安装并被 require,也找不到它。我已经付出了巨大的努力,比如 fork 了 gem 并手动要求绝对路径,还尝试将 mini_portile2 字面克隆到 rbsecp256k1 中并从那里要求它,但到目前为止都没有成功。
任何帮助都将不胜感激。