Rails 7.1 + Ubuntu 22.04环境下nokogiri依赖安装失败问题
问题
环境:Rails 7.1、Ubuntu 22.04
我的Gemfile包含:
gem 'google-apis-drive_v3', '~> 0.50.0'
执行命令:
bundle install
出现如下报错:
使用 google-apis-drive_v3 0.50.0 正在安装 nokogiri 1.18.1,包含原生扩展 Gem::Ext::BuildError: 错误:无法构建 gem 原生扩展。 当前目录:/home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/nokogiri-1.18.1/ext/nokogiri /home/deploy/.rbenv/versions/3.1.0/bin/ruby -I /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0 -r ./siteconf20250103-88403-r12ywo.rb extconf.rb 检查 -std=c99 是否可作为 CFLAGS... 是 检查 -Wno-declaration-after-statement 是否可作为 CFLAGS... 是 检查 -O2 是否可作为 CFLAGS... 是 检查 -g 是否可作为 CFLAGS... 是 检查 -Winline 是否可作为 CFLAGS... 是 检查 -Wmissing-noreturn 是否可作为 CFLAGS... 是 检查 -Wconversion 是否可作为 CFLAGS... 否 使用打包库构建 nokogiri。 已启用静态链接。 已禁用交叉构建。 *** extconf.rb 执行失败 *** 无法创建 Makefile,可能是缺少必要的库和/或头文件。查看 mkmf.log 文件获取更多详细信息。你可能需要配置选项。 提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/home/deploy/.rbenv/versions/3.1.0/bin/$(RUBY_BASE_NAME) --help --clean --prevent-strip --enable-system-libraries --disable-system-libraries --use-system-libraries --enable-system-libraries --disable-system-libraries --use-system-libraries --enable-static --disable-static --enable-cross-build --disable-cross-build --enable-cross-build --disable-cross-build /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:455:in `parse_stream': 未定义方法 `parse' 用于 #<Psych::Parser:0x00007bcdae444268 @handler=#<Psych::Handlers::DocumentStream:0x00007bcdae4443f8 @stack=[], @last=nil, @root=nil, @start_line=nil, @start_column=nil, @end_line=nil, @end_column=nil, @block=#<Proc:0x00007bcdae4442b8 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:399>>, @external_encoding=0> (NoMethodError) parser.parse yaml, filename ^^^^^^ 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:399:in `parse' 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:324:in `safe_load' 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:370:in `load' 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:671:in `block in load_file' 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:670:in `open' 来自 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/psych.rb:670:in `load_file' 来自 extconf.rb:772:in `<main>' 要查看扩展编译失败的原因,请查看以下路径的 mkmf.log 文件: /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/nokogiri-1.18.1/mkmf.log extconf 执行失败,退出码 1 Gem 文件将保留在 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/nokogiri-1.18.1 以供检查。 结果已记录到 /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/nokogiri-1.18.1/gem_make.out /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in `run' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:47:in `block in build' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/tempfile.rb:317:in `open' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in `build_extension' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in `block in build_extensions' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `each' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `build_extensions' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/3.1.0/rubygems/installer.rb:847:in `build_extensions' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/rubygems_gem_installer.rb:28:in `install' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/source/rubygems.rb:207:in `install' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/installer/gem_installer.rb:54:in `install' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:186:in `do_install' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/worker.rb:62:in `apply_func' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/worker.rb:57:in `block in process_queue' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/worker.rb:54:in `loop' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/worker.rb:54:in `process_queue' /home/deploy/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bundler-2.3.16/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads' 安装 nokogiri (1.18.1) 时发生错误,Bundler 无法继续执行。 在 Gemfile 中: rails 被解析为 7.1.0,它依赖于 actioncable 被解析为 7.1.0,它依赖于 actionpack 被解析为 7.1.0,它依赖于 actionview 被解析为 7.1.0,它依赖于 rails-dom-testing 被解析为 2.2.0,它依赖于 nokogiri
报错核心:Psych::Parser 不存在 parse 方法,导致 nokogiri 原生扩展编译失败,Bundler 无法继续完成安装。
内容的提问来源于stack exchange,提问作者EastsideDev
相关产品推荐
相关产品推荐

