con*_*are 68 ruby mysql ruby-on-rails osx-snow-leopard
我使用我们在WWDC上获得的光盘升级到Snow Leopard.
试图运行我的一些rails应用程序现在抱怨sql
(in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/
-- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
我可以发誓我曾经修过这个.问题是
sudo gem install mysql
Run Code Online (Sandbox Code Playgroud)
不起作用并给出错误:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/opt/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
Run Code Online (Sandbox Code Playgroud)
有没有人得到mysql在雪豹上使用rails呢?如果是这样,你的设置是什么,更好的是,我该怎么做才能重现它?
Ian*_*lby 108
我只是经历了同样的痛苦...这对我有用:
sudo gem update --system sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
我还卸载了我10.5天内浮动的所有mysql宝石,如果以上对你不起作用,可能会这样做:)
小智 10
将mysql重建为64位或安装64位版本很重要,但您还需要确保将mysql gem的原生部分构建为64位(如果您使用的是其中一个原始的Intel Core Duo mac,则不适用).
这是魔术命令:
env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)
只要在Snow Leopard上使用本机组件进行gem安装,就应该如上所示设置ARCHFLAGS.
如果你正在使用bundler,你可以使用"bundle config"为mysql设置正确的构建参数,如下所示:
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)
我和它一起战斗了很长时间,最后让它在Snow Leopard上工作.我最终从源代码安装了Ruby,RubyGems和MySQL(参见用于安装Ruby和RubyGems 的Hivelogic教程.MQ教程在底部链接).我终于安装了宝石,但我还是得到了
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Expected in: flat namespace
Trace/BPT trap
Run Code Online (Sandbox Code Playgroud)
我终于删除了mysql.bundle
(我不知道这是为了什么),这一切都奏效了.
sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Run Code Online (Sandbox Code Playgroud)
希望能帮助别人.