2011-08-14 54 views
10

我與Ruby和OSX獅子嚴重的問題 - 每當我嘗試啓動的Rails甚至耙工具,我收到此錯誤:的Mac OSX獅子和紅寶石 - [致命]無法分配內存

[FATAL] failed to allocate memory 

我試着用不同的版本(1.9.2-p180,1.9.2-p290,1.9.2-head)重新編譯ruby,它總是一樣的。

但是我注意到我可以刪除一些寶石,然後「耙」工具將起作用,只有'rails s'將會因該錯誤而死亡。這似乎確實沒有足夠的內存來存儲我正在使用的寶石數量,但這又似乎很奇怪 - 它在雪豹甚至我的公司與Lion的Mac mini上都能很好地工作 - 唯一的區別是,迷你升級雪豹 - >獅子,而在我的iMac的一個乾淨的獅子安裝。

任何想法?是否有某種設置可以增加OSX/Lion上的內存?

回答

7

我花了一些時間才能體現出來,但這裏是解決方案:

此問題是由mysql2寶石造成的,當我切換到ruby-mysql這一切都開始工作了(記得更改適配器從mysql2mysql在你的database.yml!)

所以我開始考慮mac mini和iMac之間的差異。基本上迷你運行獅子升級雪豹,這是升級豹,它有良好的舊的Mac端口的MySQL和pgsql服務器。所以當gem編譯它的使用端口庫。

另一方面,安裝了Lion的iMac具有Zend Server包(apache + php + mysql二進制文件)和一個包含編譯gem所需庫的Homebrew包'mysql-connector-c'。

總而言之,好像端口版本的mysql工作正常,而Homewbrew連接器沒有(它泄漏了一些內存?)。

希望這會有所幫助。

+0

你有沒有得到mysql2工作?我有同樣的[致命]錯誤... – Mirko

+0

http://stackoverflow.com/questions/7490968/cant-get-mysql2-gem-to-work-with-mamp2-and-rvm-on-lion- rails3-app – Mirko

3

我與安裝的自制軟件有衝突的包mysql-connector-c。 mysql2使用了這個包中的dylib,而不是從mysql安裝。 取出自制包產生另外一個問題,這可以通過添加

export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/" 

我的環境來解決。

+0

這對我有效,謝謝。 – easyjo

4

我卸載mysql2

$ gem uninstall mysql2 

,並通過捆綁

$ bundle 

重新安裝並我能夠rails s再次

+0

你救了我!謝謝! – Norris