在 Debian Squeeze 上安装 mysql2 gem 时出错

编程入门 行业动态 更新时间:2024-10-23 19:34:15
本文介绍了在 Debian Squeeze 上安装 mysql2 gem 时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在 Debian Squeeze 上安装 mysql2 gem 时遇到了这个流行"错误:

I got this "popular" error while installing mysql2 gem on Debian Squeeze:

gem install mysql2 Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... no checking for mysql.h... yes checking for errmsg.h... yes checking for mysqld_error.h... yes creating Makefile make gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o client.o -c client.c gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o mysql2_ext.o -c mysql2_ext.c gcc -I. -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -D_FILE_OFFSET_BITS=64 -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o result.o -c result.c result.c: In function ‘rb_mysql_result_fetch_fields’: result.c:381: warning: comparison between signed and unsigned integer expressions gcc -shared -o mysql2.so client.o mysql2_ext.o result.o -L. -L/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -L. -rdynamic -Wl,-export-dynamic -Wl,-rpath,/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -L/usr/local/rvm/rubies/ruby-1.9.2-p290/lib -lruby -L/usr/lib -lmysqlclient_r -lpthread -lz -lm -lrt -lssl -lcrypto -ldl -lpthread -lrt -ldl -lcrypt -lm -lc /usr/bin/ld: cannot find -lmysqlclient_r collect2: ld returned 1 exit status make: *** [mysql2.so] Error 1 Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11 for inspection. Results logged to /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11/ext/mysql2/gem_make.out

堆栈溢出时有很多搜索结果,但没有一个能解决我的问题.

There are a lot of search results at stack overflow but none of them would fix my Problem.

libmysqlclient-dev - MySQL database development files libmysqlclient18 - MySQL database client library

通过 dot deb repo 安装.

are installed via dot deb repo.

mysql-server 也已安装.

mysql-server is installed, too.

以下与 libmysqlclient 相关的文件可以在/usr/lib 中找到

The following files related to libmysqlclient could be found at /usr/lib

/usr/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient_r /usr/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.a /usr/lib/libmysqlclient_r.so.16 /usr/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient_r.so.16.0.0

推荐答案

看来原生扩展的问题是缺少头文件(.h)它们通常位于 -dev 库中

It seems the the problem with the native extensions is the lack of the header files (.h) They are typically found in the -dev libraries

sudo apt-get install libmysqlclient-dev gem install mysql2

解决了 Debian/Ubuntu 的问题.

solves the problem for Debian/Ubuntu.

更多推荐

在 Debian Squeeze 上安装 mysql2 gem 时出错

本文发布于:2023-11-16 16:25:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1605923.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Squeeze   Debian   gem

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!