7

我们实习生的计算机在安装 mysql2 gem 时出现问题。我们刚刚将他的电脑从 OS X 10.6 升级到 10.8(Mountain Lion)。我尝试通过自制软件和 64 位 DMG 安装程序安装 mysql。我还尝试符号链接到开发工具(如此处指出:山狮升级后无法安装一些宝石)。我们安装了 Xcode (4.4) 和命令行工具。我们在安装命令行工具后尝试重新启动。

这是他的 PATH 声明~/.bashrc

PATH=/usr/local/bin:$PATH:$HOME/.rvm/bin:/usr/local/mysql/bin # Add RVM to PATH for scripting

符号链接:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2
Password:

尝试安装gem:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

        /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
creating Makefile

make
compiling client.c
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:105: error: size of array ‘ruby_check_sizeof_long’ is negative
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:109: error: size of array ‘ruby_check_sizeof_voidp’ is negative
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/intern.h:34,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:1382,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/st.h:67: error: size of array ‘st_check_for_sizeof_st_index_t’ is negative
client.c: In function ‘rb_raise_mysql2_error’:
client.c:98: warning: ISO C90 forbids mixed declarations and code
client.c: In function ‘rb_mysql_client_socket’:
client.c:590: warning: ISO C90 forbids mixed declarations and code
make: *** [client.o] Error 1


Gem files will remain installed in /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/ext/mysql2/gem_make.out

我已经删除了自制安装的 mysql 以及启动代理。还有rm -rfgem 目录 (Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11)

4

6 回答 6

5

我通过以下方式解决了这个问题:

  1. 安装自制软件ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go) (查看他们的网站以了解使用链接
  2. 按照这些说明http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion
  3. 用 homebrew 重新安装 mysql brew install mysql。(我尝试按照这些说明安装mysql http://erictarn.com/post/28269453881/how-i-installed-mysql-rvm-ruby-and-rails-on-mountain但我后来遇到了问题所以我会推荐用自制软件重新安装mysql。)
  4. 为我的项目(包括 mysql2)重新安装 rvm 和 rails 以及 gems

注意:当我尝试构建时,我遇到了一个库问题,Library not loaded: libmysqlclient.18.dylib该问题已通过运行修复sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib(请参阅Library not loaded: libmysqlclient.16.dylib error when trying to run 'rails server' on OS X 10.6 with mysql2 gem if you get同样的问题。)

于 2012-08-05T04:30:52.573 回答
0

你有没有尝试过:

gem install mysql2 --with-mysql-config=/usr/lib64/mysql/mysql_config

将 替换/usr/lib64/mysql/mysql_config为您的 mysql 配置的位置。

于 2012-07-27T18:29:06.667 回答
0

不幸的是,安装过程是非常分段的,如果不查看整体步骤,很难找出您的问题可能是什么。

在不了解您的安装步骤的情况下,以下是我遵循的一些注释,这些注释使我进入了一个稳定的 Rails Mountain Lion 开发箱(再次道歉,这不是更具体)。

  1. RVM、Ruby 的说明:moncefbelyamani.com

    注意:这里肯定有一些步骤是我通过建议采取的,brew doctor而且'rvm requirements'我从未在以前的设置中采取过。

    像这样的注释:

    • Xcode 4.3+ 仅使用 ruby​​-1.9.3-p125+ (并告诉我是否有编译问题要降级到 Xcode 4.1)
    • 使用brew install autoconf automake apple-gcc42
    • 使用brew tap homebrew/dupes
    • 和别的...
  2. Rails 特定说明:railsapps.github.com

  3. 对于 mysql(跳到安装的 mysql 部分:coolestguyplanettech.com

注意:我做了可选步骤: ...为了在不输入命令的完整路径的情况下使用 mysql 命令,您需要将 mysql 目录添加到 shell 路径...因为我发现这样做可以在构建过程中提供帮助等(一些脚本假设...)

在这里,我尝试简单地创建一个新的 rails 应用程序,默认数据库是 mysql(它通过 bundler 关闭了 mysql2)。从那里开始——我试图用一个快速的脚手架做一个测试应用程序——并且 mysql2 被拒绝了。

从那里我遇到了一个错误“库未加载:libmysqlclient.16.dylib”,并且如此处所述:stackoverflow awesomeness 我将此行添加到我的 .profile 中:export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

MY PATH 明确包括 rails 和 ruby​​: /Users/gabriel/.rvm/gems/ruby-1.9.3-p194@rails327/bin:/Users/gabriel/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/gabriel/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/gabriel/.rvm/bin:/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/usr/sbin:/opt/X11/bin:

希望这些资源能提供一些额外的帮助。

于 2012-08-02T22:18:22.857 回答
0

我能够通过运行来编译它: PATH=/bin:/usr/bin:/opt/mysql5_64/bin gem install mysql2 where mysql5_64 我下载了最新的 64 位版本的 mysql 并在那里解压。保持我已经安装的 mysql 数据库完好无损。

于 2013-01-29T04:16:22.210 回答
0

我可以通过implode-ing rvm 并安装 Homebrew 的 ruby​​ 来解决这个问题。然后,mysql2 gem 安装就好了。

这不是我在使用 rvm 时遇到的第一个此类问题。我不认为我会再次使用它。

于 2013-06-27T18:51:43.080 回答
0

我在 OSX Yosemite 上成功完成了这项工作:

sudo port install mysql56
gem install mysql2 -- --with-mysql-config=/opt/local/lib/mysql56/bin/mysql_config
于 2015-06-16T05:30:10.023 回答