【发布时间】:2011-05-27 20:54:11
【问题描述】:
两天以来,我遇到了一个我无法解决的问题。我正在尝试在 debian 机器上安装 redmine。当涉及到 gem mysql 的安装时,它失败了。我不知道该怎么办了。我的最后一个例子是你的帮助。
错误
root@host:~# gem1.8 安装mysql 构建原生扩展。这可能需要一段时间... 错误:安装mysql时出错: 错误:无法构建 gem 原生扩展。 /usr/bin/ruby1.8 extconf.rb 检查 mysql_ssl_set()... 否 检查 rb_str_set_len()... 否 检查 rb_thread_start_timer()... 否 检查mysql.h ...不 检查 mysql/mysql.h... 否 *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺少 必要的库和/或头文件。查看 mkmf.log 文件了解更多信息 细节。您可能需要配置选项。 提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --没有-make-prog --srcdir=。 --curdir --ruby=/usr/bin/ruby1.8 --with-mysql-config --没有-mysql-config Gem 文件将继续安装在 /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 以供检查。 结果记录到 /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out我尝试过的
- 按说明安装包:http://wiki.rubyonrails.org/database-support/mysql#linux_ubuntu
- 使用 mysql_config 参数安装
root@host:~# find / -name mysql_config
/usr/bin/mysql_config
root@host:~# gem1.8 install mysql --with-mysql-config=/usr/bin/mysql_config
系统
user@host:~# uname -a
Linux www.example.org 2.6.18-028stab070.4 #1 SMP Tue Aug 17 18:32:47 MSD 2010 x86_64 GNU/Linux
root@s15428277:~# aptitude search '~i (mysql|ruby)|mysql.*dev'
i A libdbd-mysql-perl - MySQL 数据库的 Perl5 数据库接口
p libghc6-hsql-mysql-dev - Haskell 的多数据库接口系统
p libgnademysql-dev - GNat Ada 数据库环境 - MySQL 编程接口
p liblua5.1-sql-mysql-dev - lua 语言版本 5.1 的 luasql 开发文件
i libmysql++-dev - mysql C++ 库绑定(开发)
i A libmysql++2c2a - mysql C++ 库绑定(运行时)
p libmysql-ocaml-dev - MySql 的 OCaml 绑定
v libmysqlclient-dev-
i libmysqlclient15-dev - MySQL 数据库开发文件
i A libmysqlclient15off - MySQL 数据库客户端库
i libopenssl-ruby1.8 - Ruby 1.8 的 OpenSSL 接口
i A libreadline-ruby1.8 - Ruby 1.8 的 Readline 接口
i A libruby1.8 - 运行 Ruby 1.8 所需的库
i libsqlite3-ruby1.8 - Ruby 1.8 的 SQLite3 接口
i A mysql-client-5.0 - MySQL 数据库客户端二进制文件
i A mysql-common - MySQL 数据库通用文件
i mysql-server - MySQL 数据库服务器(元数据包取决于最新版本)
i mysql-server-5.0 - MySQL 数据库服务器二进制文件
i ruby1.8 - 面向对象脚本语言 Ruby 1.8 的解释器
i ruby1.8-dev - 用于为 Ruby 1.8 编译扩展模块的头文件
root@host:~# gem1.8 --version
1.3.7
root@host:~# ruby1.8 --version
ruby 1.8.7 (2008-08-11 补丁级别 72) [x86_64-linux]
文件
mkmf.log
have_func: 检查 mysql_ssl_set()... -------------------- 否 “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { void ((*volatile p)()); p = (void ((*)()))mysql_ssl_set;返回0; } /* 结尾 */ “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { mysql_ssl_set();返回0; } /* 结尾 */ -------------------- have_func: 检查 rb_str_set_len()... -------------------- 否 “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { void ((*volatile p)()); p = (void ((*)()))rb_str_set_len;返回0; } /* 结尾 */ “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { rb_str_set_len();返回0; } /* 结尾 */ -------------------- have_func: 检查 rb_thread_start_timer()... -------------------- 否 “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { void ((*volatile p)()); p = (void ((*)()))rb_thread_start_timer;返回0; } /* 结尾 */ “cc -o conftest -I.-I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr /include/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -L /usr/lib/mysql -lmysqlclient -lruby1.8-static -L/usr/lib/mysql -lmysqlclient -lpthread -ldl -lcrypt -lm -lc" 检查的程序是: /* 开始 */ 1: /*顶部*/ 2: int main() { 返回 0; } 3: int t() { rb_thread_start_timer();返回0; } /* 结尾 */ -------------------- have_header: 检查 mysql.h... -------------------- 否 "cc -E -I. -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr/包括/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -o conftest.i" 检查的程序是: /* 开始 */ 1:#包括 /* 结尾 */ -------------------- have_header: 检查 mysql/mysql.h... -------------------- 没有 "cc -E -I. -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api -I/usr/包括/mysql -DBIG_JOINS=1 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -o conftest.i" 检查的程序是: /* 开始 */ 1:#包括 /* 结尾 */ --------------------【问题讨论】:
-
更新了 ruby
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] -
我遇到了同样的问题,对我来说解决方案是安装 gcc。如果错误消息说明了这一点,那就太好了。哦,好吧。
标签: mysql ruby debian gem redmine