首页 文章

无法在OS X上安装mysql gem

提问于
浏览
17

我正在做

sudo gem install mysql

在OS X上安装mysql gem . 这失败,输出如下:

构建原生扩展 . 这可能需要一段时间......错误:安装mysql时出错:错误:无法构建gem原生扩展 . /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb检查mysql_ssl_set()...是检查rb_str_set_len()...是检查rb_thread_start_timer()...否检查mysql.h ...是创建Makefile make“DESTDIR =”clean make“DESTDIR =”编译mysql.c链接共享对象mysql / mysql_api.bundle clang:错误:未知参数:'-multiply_definedsuppress'[-Wunused-命令行 - >参数 - 硬错误 - 未来] clang:注意:这将是一个硬错误(不能降级为警告)将来make:* [mysql_api.bundle]错误1失败,退出代码2 Gem文件将保留在/Library/Ruby/Gems/2.0.0/gems/mysql-2.9.1中以供检查 . 结果记录到/Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/mysql-2.9.1/gem_make.out

什么可能导致这个?我有自制的mysql安装,如果这有所作为 .

4 回答

  • 1

    From Apple's Xcode/Clang release notes:

    Xcode 5.1中的Apple LLVM编译器将无法识别的命令行选项视为错误 . 在构建Python本机扩展和Ruby Gems时已经看到了这个问题,其中当前指定了一些无效的编译器选项 . 需要更改使用无效编译器选项的项目以删除这些选项 . 为了帮助简化转换,编译器将暂时接受将错误降级为警告的选项:-Wno-error = unused-command-line-argument-hard-error-in-future ARCHFLAGS = -Wno-error = unused -command-line-argument-hard-error-in-future gem install GemName

  • 7

    似乎是Apple的rbconfig.rb的一个问题:

    $ grep -n DLDFLAGS /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb
    82:  CONFIG["LIBRUBY_DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress -install_name $(libdir)/$(LIBRUBY_SO) -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(ruby_version)  $(XLDFLAGS)"
    84:  CONFIG["EXTDLDFLAGS"] = ""
    125:  CONFIG["DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress"
    

    删除 -multiply_definedsuppress 应该允许它安装 .

  • 59

    这是由于Xcode 5.1 - 它已被报告为Ruby的一个错误 .

    https://bugs.ruby-lang.org/issues/9624

    这里还有一些额外的讨论:Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: '-multiply_definedsuppress'

  • 1

    以上答案是正确的 . 最简单的解决方法是在机器上重建ruby . Gem扩展在它自己构建时使用ruby构建配置,如果你在Xcode 5.1之前构建了ruby,它的构建配置包含违规标记 .

    这应该为所有受影响的宝石修复它 .

相关问题