首页 文章

ruby1.9.3上的Gem mysql2安装错误

提问于
浏览
2

刚刚更新到macOS Mojave,通过brew重新安装了mysql并下载了最新的xcode 9.2 . 在试图为旧的rails项目设置开发环境时,捆绑崩溃安装mysql2 gem . 在beggining我认为这是因为最新的mysql2版本,与ruby 1.9不兼容所以我试过:

gem install mysql2 -v'0.3.17'

我收到了:

/Users/me/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb检查ruby / thread.h ... * extconf.rb失败*由于某种原因无法创建Makefile,可能缺少必要的库和/或 Headers . 检查mkmf.log文件以获取更多详细信息 . 您可能需要配置选项 . 提供的配置选项: - with-opt-dir --with-opt-include --without-opt-include = $ / include --with-opt-lib --without-opt-lib = $ / lib --with-make-prog --without-make-prog --srcdir = . --curdir --ruby = / Users / me / .rvm / rubies / ruby-1.9.3-p125 / bin / ruby /Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/ 1.9.1 / mkmf.rb:381:in try_do':编译器无法生成可执行文件 . (RuntimeError)您必须首先安装开发工具 . 来自/Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:506:intry_cpp'来自/Users/me/.rvm/rubies/ruby-1.9 . 3-p125 / lib / ruby / 1.9.1 / mkmf.rb:931:来自/Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/的have_header'中的块mkmf.rb:790:inblock in checking_for'from /Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in block(2 levels)in从/Users/me/.rvm/rubies/ruby-推迟'来自/Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:inopen' 1.9.3-p125 / lib / ruby / 1.9.1 / mkmf.rb:284:从/Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9推迟的块中 . 1 / mkmf.rb:254:inopen'from /Users/me/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:280:in postpone'from / Users / me / .rvm / rubies / ruby-1.9.3-p125 / lib / ruby / 1.9.1 / mkmf.rb:789:inchecking_for'from /Users/me/.rvm/rubies/ruby-1.9.3-p125/ lib / ruby / 1.9.1 / mkmf.rb:930:来自extconf.rb的have_header':9:in'

复制自/Users/me/.rvm/gems/ruby-1.9.3-p125@mailcatcher/gems/mysql2-0.2.18/ext/mysql2/mkmf.log:

“/usr/bin/gcc-4.2 -o conftest -I / Users / me / .rvm / rubies / ruby-1.9.3-p125 / include / ruby-1.9.1 / x86_64-darwin10.8.0 -I / Users /me/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I / Users / me / .rvm / rubies / ruby-1.9.3-p125 / include / ruby -1.9.1 -I . -I / Users / me / .rvm / usr / include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing -field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -fno-common -pipe conftest.c -L.-L / Users / me /.rvm/rubies/ruby-1.9.3-p125/lib -L / Users / me / .rvm / usr / lib -L.-L / usr / local / lib -lruby.1.9.1 -lpthread -ldl - lobjc“检查程序是:/ * begin / 1:#include”ruby.h“2:3:int main(){return 0;} / end * /

2 回答

  • 3

    听起来你要么缺少XCode命令行工具: xcode-select --install

    或者mySQL包:如果你还没有自制软件: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 然后安装mysql: brew install mysql

    我不记得过去曾为我解决过这个问题,但我确信这是其中之一 .

  • 0

    将我的答案交叉链接到几乎完全相同的问题 . 我认为可能只是找不到正确的配置路径

    sudo gem install mysql2 -- --with-mysql-config=/usr/local/bin/mysql_config

    看答案here

    编辑:格式化

相关问题