构建本机扩展。这可能需要一段时间... 错误:安装libxml-ruby时出错: 错误:无法构建gem本机扩展。
current directory: /Library/Ruby/Gems/2.3.0/gems/libxml-ruby-3.1.0/ext/libxml
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20180926-80978-eoqfjh.rb extconf.rb 检查/ opt / include / libxml2,/ opt / local / include / libxml2,/ usr / local / include / libxml2,/ usr / include / libxml2中的libxml / xmlversion.h ...否 * 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 --with-make-prog --srcdir =。 --curdir --ruby = /系统/库/框架/Ruby.framework/版本/2.3/usr/bin/$(RUBY_BASE_NAME) --with-xml2-config --without-xml2-config --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include = $ {xml2-dir} / include --with-xml2-lib --without-xml2-lib = $ {xml2-dir} / lib extconf失败:需要libxml2。
Install the library or try one of the following options to extconf.rb:
--with-xml2-config=/path/to/xml2-config
--with-xml2-dir=/path/to/libxml2
--with-xml2-lib=/path/to/libxml2/lib
--with-xml2-include=/path/to/libxml2/include
要查看此扩展为何无法编译,请检查mkmf.log,该文件可在此处找到:
/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/libxml-ruby-3.1.0/mkmf.log
extconf失败,退出代码1
宝石文件将保留安装在/Library/Ruby/Gems/2.3.0/gems/libxml-ruby-3.1.0中进行检查。 结果记录到/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/libxml-ruby-3.1.0/gem_make.out 更新nokogiri 构建本机扩展。这可能需要一段时间... 错误:执行gem时...(Gem :: FilePermissionError) 您没有对/ usr / bin目录的写权限。
答案 0 :(得分:41)
该错误是由于macOS Mojave已停止将标准头文件放置在/usr/include
中,而仅将它们保留在XCode目录中。
您可以通过运行ls /usr/include
进行验证,并且很可能该目录已不存在。相反,通过运行xcode-select --install
的常规技巧无法解决问题。
解决方法是运行Apple提供的旧版安装程序,该程序会将头文件安装到/usr/include
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
答案 1 :(得分:2)
如果您使用自制软件,建议的方法是告诉pkg-config
在哪里可以找到libxml2库:
brew reinstall libxml2
export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
答案 2 :(得分:0)
此外,您可能已经过时了bundle的配置,这样就可以了。运行bundle config build.nokogiri --use-system-libraries
,它会警告您并显示您当前拥有的配置。我遵循了所有指南,并重新安装了所有gems甚至ruby几次,只是发现配置已设置为使用不再存在的路径。