问题:Snow Leopard + Ruby 1.9.1 + MySQL Gem u003d 巨大的问题

我尝试了大约 3-4 个小时,试图让 mysql gem 安装在雪豹上的 ruby 1.9.1 上。在我升级到雪豹之前,mysql gem 在 1.9.1 上可以正常工作。我从我的机器上卸载了 MySQL 服务器和 gem。然后我下载并安装:mysql-5.1.37-osx10.5-x86_64.dmg。我已经能够断言我安装的这个新版本是作为 64 位应用程序运行的。

我卸载了mysql gem。当我尝试使用此命令安装 gem 时:

env ARCHFLAGSu003d"-arch x86_64" gem install mysql --verbose -- --with-mysql-configu003d/usr/local/mysql/bin/mysql_config

我收到了这个错误:

GET 304 未修改:http://gems.rubyforge.org/latest_specs.4.8.gz

获得 200 好:http://gems.github.com/latest_specs.4.8.gz

安装 gem mysql-2.8.1

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/COPYING

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/COPYING.ja

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/History.txt

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/Manifest.txt

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/README.txt

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/Rakefile

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/extconf.rb

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/mysql.c

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/README.html

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/README_ja.html

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/extra/tommy.css

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/lib/mysql.rb

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/gem.rake

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/native.rake

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/tasks/vendor_mysql.rake

/Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/test/test_mysql.rb

构建原生扩展。这可能需要一段时间...

错误:安装mysql时出错:

错误:无法构建 gem 原生扩展。

/Users/sean/.rvm/ruby-1.9.1-p243/bin/ruby extconf.rb --with-mysql-configu003d/usr/local/mysql/bin/mysql_config

检查 mysql_ssl_set()... 是

检查 rb_str_set_len()... 否

检查 rb_thread_start_timer()... 否

检查mysql.h ...是的

创建 Makefile

制作

gcc -I。 -I/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/i386-darwin9.8.0 -I/Users/sean/.rvm/ruby-1.9.1-p243/include /ruby-1.9.1/ruby/backward -I/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1 -I。 -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/mysql/include -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-common -O2 -g -墙 -Wno-括号 -fno-common -pipe -fno-common -o mysql.o -c mysql.c

在 /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby.h:32 包含的文件中,

从 mysql.c:5:

/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:在函数“INT2NUM”中:

/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:464:警告:由于数据类型范围有限,比较总是正确的

/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:464:警告:由于数据类型范围有限,比较总是正确的

/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:在函数“UINT2NUM”中:

/Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:472:警告:由于数据类型范围有限,比较总是正确的

mysql.c:在函数'escape_string'中:

mysql.c:290:错误:需要左值作为赋值的左操作数

mysql.c:290:错误:需要左值作为赋值的左操作数

mysql.c:在函数“真实\转义\字符串”中:

mysql.c:434:错误:需要左值作为赋值的左操作数

mysql.c:434:错误:需要左值作为赋值的左操作数

make: *** [mysql.o] 错误 1

Gem 文件将继续安装在 /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1 以供检查。

结果记录到 /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

我已经尝试了从以下链接中阅读的所有内容。

1.http://void-design.net/2009/08/05/ruby-191-mysql-and-a-snow-leopard/

2.http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/

3.Rails、MySQL 和雪豹

有任何想法吗?

解答

Sean,我看到您在 rvm 下运行 Ruby 1.9.1。我在相同的设置下遇到了同样的问题(Snow Leopard、rvm、MySQL 64 位包)。所有备用 gem(mysqlplus、kwatch-mysql-ruby 等)都失败并出现相同的错误。

我会怀疑安装了 MySQL,但在系统默认的 Ruby 下,一切都像冠军一样工作。所以我想知道 rvm 是否不是万能扳手。

编辑: 我想通了。我在升级到 Snow Leopard 之前安装了 rvm,所以我的 Ruby 1.9.1 安装需要重新编译。为了更好地衡量,我从头开始重新安装了 rvm。

这是我所做的:

sudo gem uninstall rvm
rm -rf ~/.gem
sudo gem install rvm
rvm-install
rvm install 1.9.1
rvm 1.9.1
env ARCHFLAGS="-arch x86_64" gem install mysql

(注意:在 rvm 下安装 gem 时不能使用 sudo,因为 rvm 通过修改 $PATH 来工作。)

(注意:我将 /usr/local/mysql/bin 添加到我的 $PATH 中,因此在安装 mysql gem 时不必指定任何那些糟糕的命令行参数。)

mysql gem 安装顺利。

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐