无法在OS X上安装mysql gem

Mih*_*ian 18 ruby mysql macos gem clang

我正在做一个

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

让"DESTDIR ="干净

制作"DESTDIR ="

编译mysql.c

链接共享对象mysql/mysql_api.bundle

clang:错误:未知参数:' - multiply_definedsuppress'[-Wunused-command-line-> argument-hard-error-in-future]

clang:注意:将来这将是一个很难的错误(不能降级为警告)

make:* [mysql_api.bundle]错误1

make failed,退出代码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安装,如果这有所作为.

小智 60

来自Apple的Xcode/Clang发行说明:

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

  • 是!遇到了'pip install psutil`错误,这个问题在我的`virtualenv`(`venv`)中修复了:`ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future ./ venv/bin/pip安装psutil` (3认同)

小智 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"
Run Code Online (Sandbox Code Playgroud)

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