mysql2捆绑安装失败 [英] mysql2 failing bundle install

查看:206
本文介绍了mysql2捆绑安装失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在这个问题上挂了好几个小时了,以前发现的关于此问题的任何信息似乎都没有用.下面是我运行bundle install时的mysql2输出:

I've been hung up on this issue for hours now and nothing I have found previously posted about this issue seems to work. Below is the mysql2 output for when I run bundle install:

Fetching mysql2 0.4.5
Installing mysql2 0.4.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/MYUSERNAME/Desktop/MY_PROJECT/vendor/ruby/2.4.0/gems/mysql2-0.4.5/ext/mysql2
/Users/MYUSERNAME/.rbenv/versions/2.4.2/bin/ruby -r ./siteconf20180623-40170-ndn6t0.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/8.0.11/bin/mysql_config
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for rb_big_cmp()... yes
-----
Using mysql_config at /usr/local/Cellar/mysql/8.0.11/bin/mysql_config
-----
checking for mysql.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting rpath to /usr/local/Cellar/mysql/8.0.11/lib
-----
creating Makefile

current directory: /Users/MYUSERNAME/Desktop/MY_PROJECT/vendor/ruby/2.4.0/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/MYUSERNAME/Desktop/MY_PROJECT/vendor/ruby/2.4.0/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR="
compiling client.c
In file included from client.c:1:
In file included from ./mysql2_ext.h:41:
./result.h:24:3: error: unknown type name 'my_bool'
my_bool *is_null;
^
./result.h:25:3: error: unknown type name 'my_bool'
my_bool *error;
^
client.c:507:3: error: use of undeclared identifier 'my_bool'
my_bool res = mysql_read_query_result(client);
^
client.c:509:19: error: use of undeclared identifier 'res'
return (void *)(res == 0 ? Qtrue : Qfalse);
                ^
client.c:828:3: error: use of undeclared identifier 'my_bool'
my_bool boolval;
^
client.c:859:7: error: use of undeclared identifier 'boolval'
    boolval = (value == Qfalse ? 0 : 1);
    ^
client.c:860:17: error: use of undeclared identifier 'boolval'
    retval = &boolval;
                ^
client.c:863:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
    case MYSQL_SECURE_AUTH:
        ^~~~~~~~~~~~~~~~~
        MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
client.c:864:7: error: use of undeclared identifier 'boolval'
    boolval = (value == Qfalse ? 0 : 1);
    ^
client.c:865:17: error: use of undeclared identifier 'boolval'
    retval = &boolval;
                ^
client.c:896:38: error: use of undeclared identifier 'boolval'
        wrapper->reconnect_enabled = boolval;
                                    ^
client.c:1285:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
                                    ^~~~~~~~~~~~~~~~~
                                    MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
MYSQL_DEFAULT_AUTH,
^
12 errors generated.
make: *** [client.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/MYUSERNAME/Desktop/MY_PROJECT/vendor/ruby/2.4.0/gems/mysql2-0.4.5 for inspection.
Results logged to /Users/MYUSERNAME/Desktop/MY_PROJECT/vendor/ruby/2.4.0/extensions/x86_64-darwin-17/2.4.0-static/mysql2-0.4.5/gem_make.out

An error occurred while installing mysql2 (0.4.5), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.5'` succeeds before bundling.

In Gemfile:
mysql2

这是我的Gemfile的相关部分:

This is the relevant portion of my Gemfile:

gem 'rails', '5.1.4'
gem 'mysql2', '0.4.5'

我正在运行MacOS High Sierra,并通过Homebrew安装了MySQL.我试过以bundle install --system的身份运行,将/tmp/mysql.sock添加到我的database.yml(已经存在),以及重新安装系统上几乎所有相关的开发工具,但都没有运气.

I'm running MacOS High Sierra and have MySQL installed via Homebrew. I've tried running as bundle install --system, adding /tmp/mysql.sock to my database.yml (it was already there), as well as reinstalling just about every relevant dev tool on my system, all with no luck.

还值得注意的是,我过去没有做任何事情……我不确定是什么改变了,但这似乎只是我系统上的一个问题.

Its also worth noting that I've done this in the past with no issues... I'm not really sure what changed, but it seems to only be a problem on my system.

感谢您可以提供的帮助

更新:运行gem install mysql2 -v '0.4.5' -- --srcdir=/usr/local/Cellar/mysql/8.0.11/include/

推荐答案

所以问题最终是由于自制软件最近使mysql v8.xx成为标准安装,并且我进行了自制软件升级,这使我脱离了代码库支持的标准. ..备受关注.一旦我将系统的mysql版本降下来以准确反映mysql2的需求,它就起作用了.

So the problem ended up being that homebrew recently made mysql v8.x.x the standard installation and I ran homebrew upgrades which took me off the standard that our codebase supported... Noted for the future. Once I brought my system mysql version down to accurately reflect what mysql2 was looking for, it worked.

这篇关于mysql2捆绑安装失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆