I'm working on a Rails 5->6 update. When I run bundle update
, we reach mini_racer, which requires libv8-node. When Bundler tries to get libv8-node v. 15.14.0.1, it tries to install <our local mirror path>/gems/gems-repos/gems/libv8-node-15.14.0.1-x86_64-linux-musl.gem
, which is incorrect (this is a Debian VM) and the server responds with an error. gem install libv8-node
works just fine.
The ruby-libv8-node page suggests there is a known issue with Bundler picking the wrong platform. Chasing down that rabbit hole it looks like there are proposed solutions but nothing released yet.
In the meantime, is there a workaround for forcing Bundler to use the right platform? This is Bundler 2.2.28 and Ruby 2.6.6.
Based on the README, it says
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.
so please try
BUNDLE_FORCE_RUBY_PLATFORM=1 bundle install
or BUNDLE_FORCE_RUBY_PLATFORM=1 bundle update rails