2011-08-14 13 views
10

tengo serios problemas con Ruby y OSX Lion - cada vez que intento iniciar rieles o incluso una herramienta de rastrillo que estoy recibiendo este error:Mac OS X Lion y Ruby - [FATAL] no ha podido asignar memoria

[FATAL] failed to allocate memory 

Intenté volver a compilar ruby ​​en diferentes versiones (1.9.2-p180, 1.9.2-p290, 1.9.2-head) y siempre es lo mismo.

Sin embargo, noté que puedo quitar algunas gemas y luego la herramienta "rake" funcionará y solo 'rails s' morirán con ese error. Parece que de hecho no hay suficiente memoria para esta cantidad de gemas que estoy usando, pero una vez más esto parece muy extraño - funciona perfectamente bien en Snow Leopard e incluso en mi compañía en mac mini con Lion - la única diferencia es que el mini está actualizado Snow Leopard -> Lion, mientras que en mi iMac es una instalación limpia de Lion.

¿Alguna idea? ¿Existe alguna configuración para aumentar la memoria en OSX/Lion?

Respuesta

7

Me tomó un tiempo para averiguarlo, pero aquí está la solución:

Este problema fue causado por mysql2 gema, cuando me cambié a ruby-mysql todo empezó a funcionar de nuevo (recuerde cambiar el adaptador del mysql2 a mysql en su database.yml!)

Así que comencé a pensar en las diferencias entre mac mini e iMac. Básicamente, el mini está ejecutando Lion actualizado de Snow Leopard, que está actualizado Leopard y tiene buenos y viejos Mac Ports para servidores mysql y pgsql. Entonces, cuando gem se compila es usando librerías de puertos.

Por otro lado, la instalación de iMac con Lion nuevo tiene el paquete Zend Server (apache + php + binarios mysql) y un paquete Homebrew 'mysql-connector-c' que tiene bibliotecas necesarias para compilar gem.

En general, parece como si la versión de puertos de mysql funciona correctamente, mientras que el conector de Homewbrew no (¿está perdiendo algo de memoria?).

Espero que esto ayude.

+0

¿Alguna vez mysql2 para trabajar? Estoy teniendo el mismo error [FATAL] ... – Mirko

+0

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

3

Tuve un paquete conflictivo mysql-connector-c de homebrew instalado. mysql2 usó el dylib de este paquete y no de la instalación de mysql. Extracción del paquete de homebrew produjo otro problema, que podría ser resuelto mediante la adición de

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

a mi entorno.

+0

esto funcionó para mí, gracias. – easyjo

4

he desinstalado mysql2

$ gem uninstall mysql2 

y volver a instalar a través de bundler

$ bundle 

Y yo soy capaz de rails s una vez más

+0

¡Me salvaste! ¡Gracias! – Norris

Cuestiones relacionadas