我对Ruby和OSX Lion存在严重问题 - 每当我尝试启动Rails甚至是rake工具时,我都会收到此错误:
[FATAL] failed to allocate memory
我尝试重新编译不同版本的红宝石(1.9.2-p180,1.9.2-p290,1.9.2-head),它总是一样的。
然而,我注意到我可以移除一些宝石,然后“rake”工具将起作用,只有'rails s'会因该错误而死亡。事实上,对于我正在使用的这些宝石来说,实际上没有足够的内存,但这看起来非常奇怪 - 它在Snow Leopard上工作得非常好,甚至在我的公司与Lion上的mac mini上 - 唯一的区别在于mini升级版Snow Leopard - > Lion,虽然在我的iMac上是一个干净的狮子装置。
有什么想法吗?是否有某种设置可以增加OSX / Lion的内存?
答案 0 :(得分:7)
花了一些时间来弄明白,但这是解决方案:
此问题是由mysql2
gem引起的,当我切换到ruby-mysql
时,它全部重新开始工作(请记住将mysql2
中的适配器更改为mysql
database.yml
1}}!)
所以我开始考虑mac mini和iMac之间的区别。基本上迷你运行Lion从Snow Leopard升级,它是升级的Leopard,它有很好的旧Mac端口用于mysql和pgsql服务器。所以当gem编译时使用端口库。
另一方面,带有全新Lion安装的iMac有Zend Server软件包(apache + php + mysql二进制文件)和一个Homebrew软件包'mysql-connector-c',它包含编译gem所需的库。
总而言之,似乎mysql的ports版本正常工作,而Homewbrew连接器却没有(它泄漏了一些内存?)。
希望这有帮助。
答案 1 :(得分:4)
我卸载了mysql2
$ gem uninstall mysql2
并通过捆绑器重新安装
$ bundle
我可以再次rails s
答案 2 :(得分:3)
我安装了自制软件包mysql-connector-c
。 mysql2使用了这个包中的dylib而不是mysql安装。
删除自制软件包产生了另一个问题,可以通过添加
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"
到我的环境。