2011-03-13 126 views
0
sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config 
/usr/local/lib/ruby/1.9.1/optparse.rb:1262: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1278: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1262: warning: regexp match /.../n against to UTF-8 string 
/usr/local/lib/ruby/1.9.1/optparse.rb:1278: warning: regexp match /.../n against to UTF-8 string 
Building native extensions. This could take a while... 
ERROR: Error installing mysql: 
    ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for mysql_ssl_set()... no 
checking for rb_str_set_len()... no 
checking for rb_thread_start_timer()... no 
checking for mysql.h... yes 
creating Makefile 

make 
gcc -I. -I/usr/local/include/ruby-1.9.1/i386-darwin9.8.0 -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -DHAVE_MYSQL_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/mysql/include/mysql -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fno-common -O2 -g -Wall -Wno-parentheses -pipe -fno-common -o mysql.o -c mysql.c 
In file included from /usr/local/include/ruby-1.9.1/ruby.h:32, 
       from mysql.c:5: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h: In function ‘INT2NUM’: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type 
/usr/local/include/ruby-1.9.1/ruby/ruby.h: In function ‘UINT2NUM’: 
/usr/local/include/ruby-1.9.1/ruby/ruby.h:472: warning: comparison is always true due to limited range of data type 
mysql.c: In function ‘escape_string’: 
mysql.c:290: error: lvalue required as left operand of assignment 
mysql.c:290: error: lvalue required as left operand of assignment 
mysql.c: In function ‘real_escape_string’: 
mysql.c:434: error: lvalue required as left operand of assignment 
mysql.c:434: error: lvalue required as left operand of assignment 
make: *** [mysql.o] Error 1 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 
ERROR: Could not find a valid gem '—' (>= 0) in any repository 
ERROR: Could not find a valid gem '–with-mysql-config=/usr/local/mysql/bin/mysql_config' (>= 0) in any repository 

在执行下面的建议后,我仍然收到错误消息。似乎无法在mac上安装mysql

sudo gem install mysql - --with-mysql-config =/usr/local/mysql/bin/mysql_config /usr/local/lib/ruby/1.9.1/optparse.rb:1262:warning:正则表达式匹配/.../n针对UTF-8字符串 /usr/local/lib/ruby/1.9.1/optparse.rb:1278:警告:正则表达式匹配/.../n针对UTF-8字符串 /usr/local/lib/ruby/1.9.1/optparse.rb:1262:警告:regexp匹配UTF-8字符串/.../n字符串 /usr/local/lib/ruby/1.9.1/ optparse.rb:1278:警告:正则表达式匹配/.../n针对UTF-8字符串 构建原生扩展。这可能需要一段时间... 错误:安装mysql时出错: 错误:无法构建gem本机扩展。

/usr/local/bin/ruby extconf.rb 

检查mysql_ssl_set()...是 检查rb_str_set_len()...没有 检查rb_thread_start_timer()...没有 检查mysql.h中...是 创建的Makefile

make gcc -I。 -I/usr/local/include/ruby​​-1.9.1/i386-darwin9.8.0 -I/usr/local/include/ruby​​-1.9.1/ruby​​/backward -I/usr/local/include/ruby​​-1.9 .1 -I。 -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I在/ usr /本地/ mysql /下包括-g -Os -arch x86_64的-fno-共同-D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -fno常见-02 -g -Wall - Wno-括号-pipe -fno-common -o mysql.o -c mysql.c 从mysql.c中包含/usr/local/include/ruby-1.9.1/ruby.h:32, 的文件:5 : /usr/local/include/ruby-1.9.1/ruby/ruby.h:在函数'INT2NUM'中: /usr/local/include/ruby-1.9.1/ruby/ruby.h:464:warning :由于数据类型范围有限,比较始终为真 /usr/local/include/ruby-1.9.1/ruby/ruby.h:464:警告:由于数据类型范围有限,比较始终为真 /usr /local/include/ruby-1.9.1/ruby/ruby.h:在函数'UINT2NUM'中: /usr/local/include/ruby-1.9.1/ruby/ruby.h:472:警告:由于数据类型范围有限,比较始终为真 mysql.c:在函数'escape_string'中: mysql.c :290:error:作为赋值左操作数所需的左值 mysql.c:290:错误:作为赋值左操作数需要左值 mysql.c:函数'real_escape_string': mysql.c:434:error:需要左值作为分配 mysql.c的左操作数:434:错误:要求作为分配的左操作数左值 化妆:* [mysql.o]错误1

宝石文件仍将安装在/ usr/local/lib目录/ruby/gems/1.9.1/gems/mysql-2.8.1进行检查。 将结果记录到/usr/local/lib/ruby/gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make。out 错误:无法在任何存储库中找到有效的gem' - '(> = 0) 错误:找不到有效的gem'--with-mysql-config =/usr/local/mysql/bin/mysql_config '(> = 0)中的任何存储库

+0

顺便说一句,不要使用MySQL的宝石红宝石1.9.x,因为它不支持正确的编码。改用mysql2 gem。 – 2011-03-13 16:19:59

回答

1

这应该是

sudo gem install mysql —- –-with-mysql-config=/usr/local/mysql/bin/mysql_config 

sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config 

(宝石名称之间有两个连字符和编译选项,和两个连字符前缀生成选项)

您可能还需要设置ARCHFLAGS变量。见here

6

您需要安装mysql开发库,因为mysql gem包含与它们链接的本机代码。在Mac上最简单的方法是使用brew - 我已经使用它并且工作完美,但任何好的mac软件包管理器都可以工作(或者您可以从源代码安装mysql)。

酿造安装:安装它http://mxcl.github.com/homebrew/ 后只需键入:

brew install mysql 

所有BREW recipies默认安装开发库。

+0

Brew非常棒,但是如果@jgervin已经没有使用它,那么只需要安装mysql就会有很多麻烦。从MySQL网站的二进制包没有问题。无需从源代码编译或使用新的包管理系统。 – idlefingers 2011-03-13 14:15:14

+0

是的,我同意,重要的一点是除了正常的库之外,还要安装开发库。好处是,酿造是免费的。 – 2011-03-13 15:41:34

+0

从mysql下载的安装程序也可以为你做这一切。它的安装和冲泡一样简单。那么,如果你没有安装自制软件,那就是。 – idlefingers 2011-03-13 16:38:06