搭建GitHub.io时bundle install报错(libv8-node下载失败)
问题:GitHub.io建站时
bundle install安装libv8-node失败 尝试通过GitHub.io搭建个人网站,执行bundle install时出现Gem原生扩展构建失败的错误,核心问题是libv8-node无法下载Node.js 16.10.0。已更新gem、Ruby等组件,但问题仍未解决。
错误日志如下:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0/ext/libv8-node C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/3.1.0 extconf.rb creating Makefile C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0/ext/libv8-node/builder.rb:12:in `build_libv8!': failed to download node 16.10.0 (Libv8::Node::BuilderError) from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0/ext/libv8-node/location.rb:30:in `install!' from extconf.rb:9:in `<main>' ==== in C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0/ext/libv8-node ==== running C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0/libexec/download-node extconf failed, exit code 1 Gem files will remain installed in C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0 for inspection. Results logged to C:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/libv8-node-16.10.0.0/gem_make.out C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:102:in `run' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:28:in `build' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in build_extensions' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `each' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions' C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/rubygems_gem_installer.rb:72:in build_extensions' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/rubygems_gem_installer.rb:28:in `install' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/source/rubygems.rb:207:in `install' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/installer/gem_installer.rb:54:in `install' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/installer/parallel_installer.rb:186:in `do_install' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/worker.rb:62:in `apply_func' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/worker.rb:57:in `block in process_queue' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/worker.rb:54:in `loop' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/worker.rb:54:in `process_queue' C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads' An error occurred while installing libv8-node (16.10.0.0), and Bundler cannot continue. In Gemfile: mini_racer was resolved to 0.6.3, which depends on libv8-node
解决建议
调整Gem依赖版本
编辑项目的Gemfile,指定兼容性更好的mini_racer版本,比如:gem 'mini_racer', '~> 0.5.0'或者直接指定libv8-node版本并限定平台:
gem 'libv8-node', '16.10.0.0', :platforms => [:mingw, :x64_mingw]保存后重新执行
bundle install。手动下载Node.js并指定路径
下载对应Windows x64版本的Node.js 16.10.0,解压到本地目录,设置环境变量指向该路径:set LIBV8_NODE_DOWNLOAD_PATH=你的Node.js解压路径之后再运行
bundle install。通过代理解决网络问题
如果是网络限制导致下载失败,先设置代理:set http_proxy=http://代理地址:端口 set https_proxy=http://代理地址:端口再执行
bundle install。清理残留文件后重试
删除已安装的libv8-node残留文件:gem uninstall libv8-node rm -rf C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/libv8-node-16.10.0.0 rm -rf C:/Ruby31-x64/lib/ruby/gems/3.1.0/extensions/x64-mingw-ucrt/3.1.0/libv8-node-16.10.0.0然后重新执行
bundle install。切换Ruby版本
尝试使用Ruby 2.7.x版本(与libv8-node 16.x兼容性更稳定),通过版本管理工具切换后再执行bundle install。
内容的提问来源于stack exchange,提问作者asmarufoglu
相关产品推荐
相关产品推荐

