gpt4 book ai didi

mysql - 为什么我无法安装mysql2 gem?

转载 作者:行者123 更新时间:2023-11-29 17:22:50 31 4
gpt4 key购买 nike

我的操作系统是 Red Hat Enterprise Linux Server 7.4 (Maipo),CPU 架构是 x86_64,字节顺序是 Little Endian。

我正在为我的 Rails 应用程序进行 bundle 安装,但是我得到了

An error occurred while installing mysql2 (0.4.10), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/'` succeeds before bundling.

并执行gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/' 给我:

Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

current directory: /home/my-user-name/.rvm/gems/ruby-2.4.4/gems/mysql2-0.4.10/ext/mysql2
/home/my-user-name/.rvm/rubies/ruby-2.4.4/bin/ruby -r ./siteconf20180704-8600-mkihlj.rb extconf.rb
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/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for SSL_MODE_DISABLED in mysql.h... no
checking for MYSQL_OPT_SSL_ENFORCE in mysql.h... yes
checking for MYSQL.net.vio in mysql.h... no
checking for MYSQL.net.pvio in mysql.h... yes
checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes
-----
Setting libpath to /usr/lib64/
-----
creating Makefile

current directory: /home/my-user-name/.rvm/gems/ruby-2.4.4/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR=" clean

current directory: /home/my-user-name/.rvm/gems/ruby-2.4.4/gems/mysql2-0.4.10/ext/mysql2
make "DESTDIR="
compiling client.c
In file included from ./mysql2_ext.h:35:0,
from client.c:1:
client.c: In function ‘rb_set_ssl_mode_option’:
./client.h:56:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
mysql_client_wrapper *wrapper; \
^
client.c:118:3: note: in expansion of macro ‘GET_CLIENT’
GET_CLIENT(self);
^
client.c:119:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
int val = NUM2INT( setting );
^
client.c:145:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
client.c: At top level:
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
compiling infile.c
compiling mysql2_ext.c
compiling result.c
result.c: In function ‘rb_mysql_result_alloc_result_buffers’:
result.c:326:40: warning: assignment from incompatible pointer type [enabled by default]
wrapper->result_buffers[i].is_null = &wrapper->is_null[i];
^
result.c:328:40: warning: assignment from incompatible pointer type [enabled by default]
wrapper->result_buffers[i].error = &wrapper->error[i];
^
result.c: At top level:
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
compiling statement.c
statement.c: In function ‘rb_raise_mysql2_stmt_error’:
statement.c:50:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
VALUE rb_error_msg = rb_str_new2(mysql_stmt_error(stmt_wrapper->stmt));
^
statement.c:57:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
rb_encoding *default_internal_enc = rb_default_internal_encoding();
^
In file included from ./mysql2_ext.h:35:0,
from statement.c:1:
statement.c: In function ‘execute’:
./client.h:56:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
mysql_client_wrapper *wrapper; \
^
statement.c:273:3: note: in expansion of macro ‘GET_CLIENT’
GET_CLIENT(stmt_wrapper->client);
^
statement.c:405:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
VALUE rb_val_as_string = rb_funcall(argv[i], intern_to_s, 0);
^
In file included from ./mysql2_ext.h:35:0,
from statement.c:1:
statement.c: In function ‘fields’:
./client.h:56:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
mysql_client_wrapper *wrapper; \
^
statement.c:481:3: note: in expansion of macro ‘GET_CLIENT’
GET_CLIENT(stmt_wrapper->client);
^
statement.c: At top level:
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
linking shared-object mysql2/mysql2.so
/usr/bin/ld: cannot find -lmariadb
collect2: error: ld returned 1 exit status
make: *** [mysql2.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/my-user-name/.rvm/gems/ruby-2.4.4/gems/mysql2-0.4.10 for inspection.
Results logged to /home/my-user-name/.rvm/gems/ruby-2.4.4/extensions/x86_64-linux/2.4.0/mysql2-0.4.10/gem_make.out

我读到this post ,

但是执行sudo yum install mysql-devel给出:

Loaded plugins: search-disabled-repos

Package MariaDB-devel-10.3.8-1.el7.centos.x86_64 already installed and latest version
Nothing to do

即使运行sudo yum list displayed mysql-devel给出:

Loaded plugins: search-disabled-repos
Error: No matching Packages to list

这很奇怪。

之前,我通过执行以下两个步骤安装了 MariaDB:

第 1 步:

sudo vi /etc/yum.repos.d/MariaDB.repo

其内容是:

# MariaDB 5.5 RedHat repository list - created 2018-07-04 03:54 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/rhel7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

第 2 步:

sudo yum install MariaDB-server MariaDB-client

我确实启动了它:sudo service mysql start

如何成功安装mysql2 gem?

最佳答案

首次运行

sudo apt-get install libmysqlclient-dev

或者

yum install mysql-devel

然后

bundle install

关于mysql - 为什么我无法安装mysql2 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165629/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com