Ошибка установки MySQL Gem на Ruby 2.4

у меня проблема с установкой MySQL gem. Это моя ошибка :

gem install mysql -v '2.9.1'
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

    current directory: /usr/local/rvm/gems/ruby-2.4.0/gems/mysql-2.9.1/ext/mysql_api
/usr/local/rvm/rubies/ruby-2.4.0/bin/ruby -r ./siteconf20170107-4120-x2dv85.rb extconf.rb
checking for mysql_ssl_set()... yes
checking for rb_str_set_len()... yes
checking for rb_thread_start_timer()... no
checking for mysql.h... yes
creating Makefile

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /usr/local/rvm/gems/ruby-2.4.0/extensions/x86_64-linux/2.4.0/mysql-2.9.1/mkmf.log

current directory: /usr/local/rvm/gems/ruby-2.4.0/gems/mysql-2.9.1/ext/mysql_api
make "DESTDIR=" clean

current directory: /usr/local/rvm/gems/ruby-2.4.0/gems/mysql-2.9.1/ext/mysql_api
make "DESTDIR="
compiling mysql.c
mysql.c: In function ‘stmt_bind_result’:
mysql.c:1320:74: error: ‘rb_cFixnum’ undeclared (first use in this function)
  else if (argv[i] == rb_cNumeric || argv[i] == rb_cInteger || argv[i] == rb_cFixnum)
                                                                          ^
mysql.c:1320:74: note: each undeclared identifier is reported only once for each function it appears in
mysql.c: At top level:
cc1: warning: unrecognized command line option "-Wno-self-assign"
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
cc1: warning: unrecognized command line option "-Wno-tautological-compare"
Makefile:241: recipe for target 'mysql.o' failed
make: *** [mysql.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.4.0/gems/mysql-2.9.1 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.4.0/extensions/x86_64-linux/2.4.0/mysql-2.9.1/gem_make.out

когда я попробую эту команду sudo gem install mysql -v '2.9.1', это работает, и я прочитал эту строку, чтобы оправдать его...

sudo gem install mysql -v '2.9.1'
Building native extensions.  This could take a while...
Successfully installed mysql-2.9.1
Parsing documentation for mysql-2.9.1
Done installing documentation for mysql after 0 seconds
1 gem installed

Я не понимаю, что произошло и как решить эту. Если кто-нибудь сможет мне помочь...

1 ответов


MySQL gem является одним из многих драгоценных камней, который не нравится унификация типов integer в Ruby 2.4.

к сожалению, поскольку MySQL gem больше не поддерживается, я бы не задерживал дыхание для обновленной версии. В качестве обходного пути вы можете переключиться на версию Ruby до 2.4, например Ruby 2.3.3.

кроме того, вы можете переключиться на mysql2 драгоценный камень который активно поддерживается, имеет аналогичный API для MySQL gem и в его последняя версия совместима с Ruby 2.4.