ruby nokogiri gem install mac osx high sierra

Posted

技术标签:

【中文标题】ruby nokogiri gem install mac osx high sierra【英文标题】: 【发布时间】:2018-04-02 16:07:11 【问题描述】:

尝试在我的 OSX High Sierra(全新安装)上使用新的 ruby​​ 进行捆绑安装,但在这个 nokogiri gem 上一直失败。这是错误日志:

$ sudo gem 安装 nokogiri 构建原生扩展。这可能需要一段时间... 错误:安装 nokogiri 时出错: 错误:无法构建 gem 原生扩展。 当前目录:/Library/Ruby/Gems/2.3.0/gems/nokogiri- 1.8.1/ext/nokogiri /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20171021-88037-tq6xex.rb extconf.rb 检查 C 编译器是否接受...是 检查 C 编译器是否接受 -Wno-error=unused-command-line- 未来的参数硬错误......不 使用打包的库构建 nokogiri。 使用 mini_portile 版本 2.3.0 检查 iconv.h... 是的 检查 -lz 中的 gzdopen()... 是 检查 iconv... 是的 ****************************************************** ************************ 重要的提醒: 使用 libxml2-2.9.5 的打包版本构建 Nokogiri。 Nokogiri 团队将继续尽最大努力提供安全保障 及时更新,但如果这对您来说是一个问题并且想要 改为使用系统库;中止此安装过程并 重新安装 nokogiri 如下: gem install nokogiri -- --use-system-libraries [--with-xml2-config=/path/to/xml2-config] [--with-xslt-config=/path/to/xslt-config] 如果您使用的是 Bundler,请告诉它使用以下选项: 捆绑配置 build.nokogiri --use-system-libraries 捆绑安装 但是请注意,nokogiri 不完全兼容任意 操作系统/软件包供应商提供的 libxml2 版本。 ****************************************************** ************************ 将 libxml2-2.9.5.tar.gz 解压到 tmp/x86_64-apple- darwin17/ports/libxml2/2.9.5... 好的 为 libxml2 2.9.5 运行“配置”... OK 为 libxml2 2.9.5 运行“编译”...错误,请查看 '/Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.1/ext/nokogiri/tmp/x86_64- apple-darwin17/ports/libxml2/2.9.5/compile.log' 看看发生了什么。 最后几行是: ==================================================== ======================= CCLD libxml2.la 抄送 testdso.lo CCLD testdso.la 抄送 xmllint.o CCLD xmllint ld:警告:忽略文件 /usr/local/Cellar/xz/5.2.2/lib/liblzma.dylib,文件是为 x86_64 构建的 这不是被链接的架构(i386): /usr/local/Cellar/xz/5.2.2/lib/liblzma.dylib 架构 i386 的未定义符号: “_lzma_auto_decoder”,引用自: libxml2.a(xzlib.o) 中的 _xz_head “_lzma_code”,引用自: libxml2.a(xzlib.o) 中的 _xz_decomp “_lzma_end”,引用自: ___libxml2_xzclose 在 libxml2.a(xzlib.o) “_lzma_properties_decode”,引用自: libxml2.a(xzlib.o) 中的 _is_format_lzma ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看 调用) make[2]: *** [xmllint] 错误 1 make[1]: *** [all-recursive] 错误 1 make: *** [全部] 错误 2 ==================================================== ======================= *** 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 --没有-make-prog --srcdir=。 --curdir -- ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/$(RUBY_BASE_NAME) - 帮助 - 干净的 --使用系统库 --启用静态 --禁用静态 --with-zlib-dir --没有-zlib-dir --with-zlib-include --without-zlib-include=$zlib-dir/include --with-zlib-lib --without-zlib-lib=$zlib-dir/lib --启用交叉构建 --禁用交叉构建 /图书馆/Ruby/Gems/2.3.0/gems/mini_portile2- 2.3.0/lib/mini_portile2/mini_portile.rb:402:in `block in execute': 无法完成编译任务(RuntimeError) 来自 /Library/Ruby/Gems/2.3.0/gems/mini_portile2- 2.3.0/lib/mini_portile2/mini_portile.rb:373:in `chdir' 来自 /Library/Ruby/Gems/2.3.0/gems/mini_portile2- 2.3.0/lib/mini_portile2/mini_portile.rb:373:在“执行”中 来自 /Library/Ruby/Gems/2.3.0/gems/mini_portile2- 2.3.0/lib/mini_portile2/mini_portile.rb:115:在“编译”中 来自 /Library/Ruby/Gems/2.3.0/gems/mini_portile2- 2.3.0/lib/mini_portile2/mini_portile.rb:154:in `cook' 来自 extconf.rb:365:in `block (2 levels) in process_recipe' 来自 extconf.rb:257:in `block in chdir_for_build' 来自 extconf.rb:256:in `chdir' 来自 extconf.rb:256:in `chdir_for_build' 来自 extconf.rb:364:in `block in process_recipe' 来自 extconf.rb:262:in `tap' 来自 extconf.rb:262:in `process_recipe' 来自 extconf.rb:548:in `' 要查看此扩展无法编译的原因,请查看 mkmf.log 可以在这里找到: /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/nokogiri- 1.8.1/mkmf.log extconf 失败,退出代码 1 Gem 文件将继续安装在 /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.1 进行检查。 结果记录到 /Library/Ruby/Gems/2.3.0/extensions/universal-darwin- 17/2.3.0/nokogiri-1.8.1/gem_make.out

【问题讨论】:

nokogiri gem installation error的可能重复 【参考方案1】:

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libxml2/

确保你已经安装了 xcode

【讨论】:

这适用于高山脉;我真的希望我能在一小时前找到这个!【参考方案2】:

这是唯一对我有用的东西:

bundle config build.nokogiri --use-system-libraries \ --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

然后bundle install

【讨论】:

【参考方案3】:

我发现与 xz 库有冲突,使用以下方法解决:

brew unlink xz
sudo gem install nokogiri
brew link xz

来源: Nokogiri bug report - Unable to install Nokogiri on Mac OS 10.13 with lzma from homebrew

【讨论】:

在 High Sierra 10.13.6 + rvm 2.5.1 上为我工作,虽然我只是做了一个普通的 bundle install 并且它工作了。

以上是关于ruby nokogiri gem install mac osx high sierra的主要内容,如果未能解决你的问题,请参考以下文章

LoadError:库版本不兼容 - /home/ubuntu/.rvm/gems/ruby-2.3.1@lm5/gems/nokogiri-1.8.2/lib/nokogiri/nokogiri.s

安装 ruby​​ gem nokogiri 时缺少 libxslt

nokogiri gem installation error

如何通过 Gemfile “gem install nokogiri -- --use-system-libraries”

gem安装软件时遇到的问题以及解决思路

ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.