2017-01-07 15 views
11

Tôi gặp vấn đề với cài đặt gem mysql. Đây là lỗi của tôi:Lỗi cài đặt MySQL Gem trên Ruby 2.4

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 

Khi tôi cố gắng lệnh này sudo gem install mysql -v '2.9.1', đó là công trình, và tôi đọc dòng này để biện minh cho nó ...

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 

Tôi không hiểu những gì đã xảy ra và làm thế nào để đã giải quyết vấn đề này. Nếu ai đó có thể giúp tôi ...

Trả lời

13

Đá quý mysql là một trong nhiều đá quý không thích số unification of the integer types trong Ruby 2.4.

Thật không may, vì đá quý mysql không thực sự được duy trì nữa, tôi sẽ không nín thở cho một phiên bản cập nhật. Để giải quyết sự cố này, bạn có thể chuyển sang phiên bản Ruby trước 2.4, ví dụ: Ruby 2.3.3.

Hoặc, bạn có thể chuyển sang mysql2 gem được duy trì tích cực, có API tương tự với đá quý mysql và trong phiên bản mới nhất của nó tương thích với Ruby 2.4.

+0

Cảm ơn câu trả lời của bạn, quả thật vậy, phiên bản Ruby là vấn đề. Tôi sẽ kiểm tra để thay đổi để mysql2 đá quý. – Christophe

Các vấn đề liên quan