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

macOS安装libxml-ruby/nokogiri报错:找不到'plist/Node.h'文件

解决macOS High Sierra下安装libxml-ruby和nokogiri的原生扩展构建错误

我在处理旧版macOS的Ruby gem安装问题时经常遇到这类情况——系统自带的libxml2库缺少编译所需的头文件(比如你碰到的plist/Node.h),导致gem无法完成原生扩展的构建。下面是具体的解决步骤:

1. 确认Xcode命令行工具配置无误

首先检查Xcode命令行工具的路径是否正确,执行:

xcode-select --print-path

如果输出不是/Applications/Xcode.app/Contents/Developer,运行以下命令切换路径:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

另外,务必确保你已经接受了Xcode的许可协议,否则编译过程可能会被中断:

sudo xcodebuild -license accept

2. 用Homebrew安装完整的libxml2和libxslt库

系统自带的libxml2版本通常裁剪了一些非核心组件,而Homebrew提供的完整版包含所有必要的头文件。如果还没安装Homebrew,先执行这个命令安装(直接运行即可,无需跳转外部网站):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后安装所需的库:

brew install libxml2 libxslt

3. 指定库路径安装目标gem

安装libxml-ruby时,明确告诉gem使用Homebrew安装的库路径:

sudo gem install libxml-ruby -n /usr/local/bin -- --with-xml2-include=$(brew --prefix libxml2)/include/libxml2 --with-xml2-lib=$(brew --prefix libxml2)/lib

安装nokogiri时,需要同时指定libxml2和libxslt的路径:

sudo gem install nokogiri -n /usr/local/bin -- --with-xml2-include=$(brew --prefix libxml2)/include/libxml2 --with-xml2-lib=$(brew --prefix libxml2)/lib --with-xslt-include=$(brew --prefix libxslt)/include --with-xslt-lib=$(brew --prefix libxslt)/lib

备选方案:尝试预编译二进制包

如果你不想手动配置路径,可以试试安装nokogiri的预编译二进制版本,运行:

sudo gem install nokogiri -n /usr/local/bin --use-system-libraries

这个命令会自动尝试匹配系统中的库路径,有时候能直接绕过编译错误。

内容的提问来源于stack exchange,提问作者Cœur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:11:11