OSX GEM安装Rails错误

时间:2015-07-02 21:00:35

标签: ruby-on-rails macos gem

当我通过runnig'sudo gem install rails'在OSX中安装rails时,我得到了以下内容。

构建原生扩展。这可能需要一段时间...... 错误:安装rails时出错:     错误:无法构建gem原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20150702-37637-10z8fhh.rb extconf.rb

检查C编译器是否接受...是 检查C编译器是否接受-Wno-error = unused-command-line-argument-hard-error-in-future ... no 使用打包库构建nokogiri。 检查-lz中的gzdopen()...是的 检查iconv ...是的

重要通知:

使用打包版本的libxml2-2.9.2构建Nokogiri 应用以下补丁:      - 0001-Revert-Missing-initialization-for-catalog-module.patch      - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch

Nokogiri团队将继续尽最大努力提供安全保障 及时更新,但如果这是您关注的问题 改为使用系统库;中止此安装过程和 重新安装nokogiri如下:

gem install nokogiri -- --use-system-libraries
    [--with-xml2-config=/path/to/xml2-config]
    [--with-xslt-config=/path/to/xslt-config]

如果您使用的是Bundler,请告诉它使用选项:

bundle config build.nokogiri --use-system-libraries
bundle install

但请注意,nokogiri与任意不完全兼容 操作系统/软件包供应商提供的libxml2版本。

将libxml2-2.9.2.tar.gz解压缩到tmp / x86_64-apple-darwin14 / ports / libxml2 / 2.9.2 ......好的 使用/Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch运行补丁... 为libxml2 2.9.2运行'patch'...好的 使用/Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch运行补丁... 为libxml2 2.9.2运行'patch'...好的 为libxml2 2.9.2运行'configure'...确定 为libxml2运行'compile'2.9.2 ... ERROR,查看'/Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-apple-darwin14/ports/libxml2 /2.9.2/compile.log'看看发生了什么。 * extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的 库和/或标题。检查mkmf.log文件以获取更多详细信息。你可以 需要配置选项。

提供配置选项:     --with-OPT-DIR     --without-OPT-DIR     --with-OPT-包括     --without-OPT-包括= $ {停用DIR} /包括     --with-OPT-LIB     --without-OPT-LIB = $ {选择-DIR} / lib目录     --with-MAKE-PROG     --without-MAKE-PROG     --srcdir =。     --curdir     --ruby = /系统/库/框架/ Ruby.framework /版本/ 2.0的/ usr /斌/红宝石      - 救命      - 清洁     --use-系统库     --enable-静     --disable静电     --with-zlib的-DIR     --without-zlib的-DIR     --with-zlib的,包括     --without-ZLIB-包括= $ {的zlib-DIR} /包括     --with-zlib的-LIB     --without-ZLIB-LIB = $ {的zlib-DIR} / lib中     --enable-交叉编译     --disable交叉编译 /Library/Ruby/Gems/2.0.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:279:in block in execute': Failed to complete compile task (RuntimeError) from /Library/Ruby/Gems/2.0.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in chdir'     from /Library/Ruby/Gems/2.0.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:271:in execute' from /Library/Ruby/Gems/2.0.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:70:in compile'     from /Library/Ruby/Gems/2.0.0/gems/mini_portile-0.6.2/lib/mini_portile.rb:110:in cook' from extconf.rb:278:in block in process_recipe'     来自extconf.rb:177:在tap' from extconf.rb:177:in process_recipe'中     来自extconf.rb:475:在''

extconf失败,退出代码1

Gem文件将保留在/Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.6.2中以供检查。 结果记录到/Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14/2.0.0/nokogiri-1.6.6.2/gem_make.out

1 个答案:

答案 0 :(得分:1)

使用原生扩展构建gem始终是一件痛苦的事。您需要安装几个库或编译工具。在nokogiri的情况下它是libxml。出于这个原因,我建议使用rvm开始。在谈到unix哲学时,RVM并不是最干净的工具,但它是一个全栈解决方案,这意味着它只是开箱即用。它将使用默认的osx包管理器为您安装所有依赖项。作为包管理员,我推荐homebrew

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

#install rvm into $HOME
brew install gpg
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable

rvm install ruby --latest

gem install rails #no sudo, as ruby is in $HOME