我如何强制 Bundler 为迷你赛车获得正确的 libv8 节点?

How do I force Bundler to get the right libv8-node for mini-racer?

我正在开发 Rails 5->6 更新。当我 运行 bundle update 时,我们到达 mini_racer,这需要 libv8-node。当 Bundler 尝试获取 libv8-node v. 15.14.0.1 时,它会尝试安装 <our local mirror path>/gems/gems-repos/gems/libv8-node-15.14.0.1-x86_64-linux-musl.gem,这是不正确的(这是 Debian VM)并且服务器响应错误。 gem install libv8-node 工作正常。

ruby-libv8-节点页面suggests there is a known issue with Bundler picking the wrong platform。追逐那个兔子洞,看起来有提议的解决方案,但尚未发布。

同时,是否有强制 Bundler 使用正确平台的解决方法?这是 Bundler 2.2.28 和 Ruby 2.6.6.

根据 README,它说

If a published binary does not work for you, bundler allows to force using the ruby platform via force_ruby_platform, which will compile from source.

所以请尝试

BUNDLE_FORCE_RUBY_PLATFORM=1 bundle install

BUNDLE_FORCE_RUBY_PLATFORM=1 bundle update rails