You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下Bundle Install安装nokogiri 1.6.8.1失败求助

安装nokogiri 1.6.8.1失败(Ruby 2.7.8 + Ubuntu + rbenv)

在Ubuntu系统上用rbenv管理Ruby 2.7.8运行应用,执行bundle install时遇到错误:

安装nokogiri (1.6.8.1)时出错,Bundler无法继续。请确保gem install nokogiri -v '1.6.8.1' --source 'https://rubygems.org/'执行成功后再进行打包。

尝试过以下所有安装nokogiri的方法,但均失败:

  • gem install nokogiri -v '1.6.8.1' --source 'https://rubygems.org/'
  • gem install nokogiri -v '1.6.8.1' --source 'https://rubygems.org/' -- --use-system-libraries
  • gem install nokogiri -v '1.6.8.1' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2
  • 先执行bundle config build.nokogiri --use-system-libraries再执行bundle install

安装过程中出现的错误(截取部分内容):

ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    current directory: /home/adam/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/nokogiri-1.6.8.1/ext/nokogiri
/home/adam/.rbenv/versions/2.7.8/bin/ruby -I /home/adam/.rbenv/versions/2.7.8/lib/ruby/2.7.0 -r ./siteconf20240116-50988-10fdguc.rb extconf.rb --use-system-libraries --with-xml2-include\=/usr/include/libxml2
checking if the C compiler accepts ... yes
Building nokogiri using system libraries.
checking for xmlParseDoc() in libxml/parser.h... yes
checking for xsltParseStylesheetDoc() in libxslt/xslt.h... yes
checking for exsltFuncRegister() in libexslt/exslt.h... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile

current directory: /home/adam/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/nokogiri-1.6.8.1/ext/nokogiri
make "DESTDIR=" clean

current directory: /home/adam/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/nokogiri-1.6.8.1/ext/nokogiri
make "DESTDIR="
compiling html_document.c
In file included from /home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby.h:33:0,
                 from ./nokogiri.h:33,
                 from ./html_document.h:4,
                 from html_document.c:1:
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h: In function ‘rb_scan_args_set’:
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h:2594:40: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
         memcpy(ptr, argv, sizeof(VALUE)*argc);
                                        ^
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h:1763:54: note: in definition of macro ‘memcpy’
 #define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)
                                                      ^
In file included from ./html_document.h:4:0,
                 from html_document.c:1:
./nokogiri.h: At top level:
./nokogiri.h:39:0: warning: "MAYBE_UNUSED" redefined
 #  define MAYBE_UNUSED(name) name __attribute__((unused))
 
In file included from /home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h:24:0,
                 from /home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby.h:33,
                 from ./nokogiri.h:33,
                 from ./html_document.h:4,
                 from html_document.c:1:
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/x86_64-linux/ruby/config.h:161:0: note: this is the location of the previous definition
 #define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x
 
In file included from /home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby.h:33:0,
                 from ./nokogiri.h:33,
                 from ./html_document.h:4,
                 from html_document.c:1:
html_document.c: In function ‘new’:
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h:2510:48: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
        (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc)
                                                ^
......
                                                ^
/home/adam/.rbenv/versions/2.7.8/include/ruby-2.7.0/ruby/ruby.h:2342:9: note: in expansion of macro ‘rb_scan_args0’
         rb_scan_args0(argc,argvp,fmt,\
         ^~~~~~~~~~~~~
xml_document.c:508:3: note: in expansion of macro ‘rb_scan_args’
   rb_scan_args(argc, argv, "03", &mode, &incl_ns, &with_comments);
   ^~~~~~~~~~~~
xml_document.c:535:15: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
       ns[i] = (xmlChar*) ptr;
               ^
Makefile:245: recipe for target 'xml_document.o' failed
make: *** [xml_document.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/adam/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/nokogiri-1.6.8.1 for inspection.
Results logged to /home/adam/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/nokogiri-1.6.8.1/gem_make.out

已安装libxslt-dev和libxml2-dev,试过网上能找到的所有解决方案都无效,求帮助。


内容的提问来源于stack exchange,提问作者Eaten Taik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:05:14