雪豹&x2B;Ruby 1.9.1+;MySQL Gem=巨大的问题

雪豹&x2B;Ruby 1.9.1+;MySQL Gem=巨大的问题,mysql,ruby,macos,rubygems,Mysql,Ruby,Macos,Rubygems,我花了大约3-4个小时试图在雪豹上为ruby 1.9.1安装mysql gem。在我升级到SnowLeopard之前,mysql gem在1.9.1上运行得很好。我从我的机器上卸载了MySQL服务器和gem。然后我下载并安装了:mysql-5.1.37-osx10.5-x86_64.dmg。我可以断言,我安装的这个新版本是作为64位应用程序运行的 我卸载了mysql gem。当我尝试使用以下命令安装gem时: env ARCHFLAGS="-arch x86_64" gem install my

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

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

env ARCHFLAGS="-arch x86_64" gem install mysql --verbose -- --with-mysql-config=/usr/local/mysql/bin/mysql_config env ARCHFLAGS=“-arch x86_64”gem安装mysql--verbose--with mysql config=/usr/local/mysql/bin/mysql_config 我得到了这个错误:

GET 304 Not Modified: http://gems.rubyforge.org/latest_specs.4.8.gz GET 200 OK: http://gems.github.com/latest_specs.4.8.gz Installing 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 Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /Users/sean/.rvm/ruby-1.9.1-p243/bin/ruby extconf.rb --with-mysql-config=/usr/local/mysql/bin/mysql_config checking for mysql_ssl_set()... yes 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/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-common -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 -fno-common -pipe -fno-common -o mysql.o -c mysql.c In file included from /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby.h:32, from mysql.c:5: /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h: In function 'INT2NUM': /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h:464: warning: comparison is always true due to limited range of data type /Users/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1/ruby/ruby.h: In function 'UINT2NUM': /Users/sean/.rvm/ruby-1.9.1-p243/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 /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1 for inspection. Results logged to /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 获取未修改的304:http://gems.rubyforge.org/latest_specs.4.8.gz 获得200 OK: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\u api/extconf.rb /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql\u-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\u 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\u mysql.rake /Users/sean/.gem/ruby/1.9.1/gems/mysql-2.8.1/test/test\u mysql.rb 构建本机扩展。这可能需要一段时间。。。 错误:安装mysql时出错: 错误:无法生成gem本机扩展。 /Users/sean/.rvm/ruby-1.9.1-p243/bin/ruby extconf.rb——使用mysql-config=/usr/local/mysql/bin/mysql\u-config 正在检查mysql\u ssl\u集()。。。对 正在检查rb_str_set_len()。。。不 正在检查rb\u线程\u启动\u计时器()。。。不 正在检查mysql.h。。。对 创建Makefile 制作 gcc-I-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/sean/.rvm/ruby-1.9.1-p243/include/ruby-1.9.1-I-I-DHAVE\u-MYSQL\u-SSL\u-SSL\u-SSL\u集-ve\u-H-D\XOPEN\u-D\u-D\u源代码-C\u/C\u-include/arch-usu-I/MYSQL-MYSQL-I/MYSQL-MYSQL-l\u-fnu\u-MYSQL-usu-x86-D_P1003_1B_VIO_CLOSE_VIO_CLOSE_DSIGNAL_Don_BREAK_READ-DIGNORE_SIGHUP_SIGQUIT-DDONT_声明_CXA_PURE_VIRTUAL_-fno common-O2-g-Wall-Wno括号-fno common-pipe-fno common-o mysql.o-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:警告:由于数据类型的范围有限,比较总是正确的 c:在函数“escape_string”中: c:290:错误:赋值的左操作数需要左值 c:290:错误:赋值的左操作数需要左值 c:在函数“real\u escape\u string”中: c:434:错误:赋值的左操作数需要左值 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\u api/gem\u make.out 我已经尝试了从以下链接中阅读的所有内容


  • 有什么想法吗?

    我通过从MacPorts安装MySQL,然后运行与上面相同的gem install命令来解决这个问题

    因此,首先,从软件包中卸载MySQL:

    sudo rm /usr/local/mysql
    sudo rm -rf /usr/local/mysql*
    sudo rm -rf /Library/StartupItems/MySQLCOM
    sudo rm -rf /Library/PreferencePanes/My*
    edit /etc/hostconfig and remove the line MYSQLCOM=-YES-
    rm -rf ~/Library/PreferencePanes/My*
    sudo rm -rf /Library/Receipts/mysql*
    sudo rm -rf /Library/Receipts/MySQL*
    
    如果尚未安装,请从此处安装MacPorts: 有一个给雪豹的包裹

    从MacPorts安装mysql5-devel:

    sudo port install mysql5-server-devel
    
    它将完成所有依赖项,然后是MySQL。遵循安装程序建议的所有安装后步骤-启动项目等。它安装的MySQL是64位的

    然后安装MySQL gem,方法是:

    env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/opt/local/bin/mysql_config5
    
    注意这里的路径发生了变化。MacPorts将MySQL放在不同的位置


    您应该可以开始了。

    我尝试了上述所有步骤,但运气不佳,但发现了一个解决方法(或其他方法),使用mysqlplus gem而不是mysql gem:

    sudo env ARCHFLAGS="-arch x86_64" gem install mysqlplus
    

    现在,我的MySQL ruby应用程序在雪豹中非常有魅力。

    安装XCode是我的解决方案

    请看以下帖子:。它展示了如何让MySQL+RubyonRails+SnowLeopard完美运行。

    Sean,我看到您正在rvm下运行Ruby1.9.1。在相同的设置(雪豹、rvm、MySQL 64位软件包)下,我遇到了相同的问题。所有备用gem(mysqlplus、kwatch-mysql-ruby等)都会因相同的错误而失败

    我会怀疑MySQL的安装,但在系统默认Ruby下,一切都像champ一样工作。所以我想知道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下安装gems时不能使用sudo,因为rvm通过修改$PATH来工作。)

    (注意:我在$PATH中添加了/usr/local/mysql/bin)