new - Ruby: mysql2-Gem no funciona(Mac OS X Snow Leopard, Ruby 1.9.2)
ruby on rails mysql configuration (6)
Acabo de compilar ruby e installes rubygems, mysql2 y rails, que funcionaron bastante bien. Pero recibo el siguiente mensaje de error, cada vez que intento iniciar el servidor de rieles:
/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `require'': dlopen(/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError) Referenced from: /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Reason: image not found - /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `block (2 levels) in require'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `block in require'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'' from /Users/filzo/Documents/rails/blog/config/application.rb:7:in `'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in `require'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in `block in '' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:27:in `tap'' from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:27:in `'' from script/rails:6:in `require'' from script/rails:6:in `''
Probé varias soluciones posibles (p. Ej., Esto: http://railsforum.com/viewtopic.php?pid=23125#23125 con libmysqlclient.18.dylib); Pero nada me funcionó. Espero que puedas ayudarme.
EDITAR: Parece que esto solucionó el problema para mí:
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
De todas formas; ¿Es un error en el MySQL o el código ruby?
Esto parece ser un error conocido (¡y no arreglado!) En la distribución binaria de MySQL .
Mientras ejecutas install_name_tool
en tus archivos mysql2.bundle funcionarán, si los eliminas y los reconstruyes, volverás al punto uno. Además, tendrás que aplicar esta corrección a cualquier otra cosa que se vincule en su contra. Una mejor solución es solucionar el problema en la propia biblioteca:
$ sudo install_name_tool -id /
/usr/local/mysql/lib/libmysqlclient.18.dylib /
/usr/local/mysql-5.5.12-osx10.6-x86_64/lib/libmysqlclient.18.dylib
Eliminando y reconstruyendo la gema mysql2:
$ gem uninstall mysql2
$ gem install mysql2
... recogerá el cambio en la biblioteca, y todo debería funcionar correctamente, sin tener que jugar con ninguna variable de entorno.
Intente hacer este enlace simbólico, para que rake pueda encontrar la biblioteca de cliente MySQL correcta.
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
No estoy seguro de si esto ayudará o no, pero estoy usando OS X 10.7.1 Lion. En mi caso, abrí una ventana de terminal, fui a /Library/Ruby/Gems/1.8/gems/mysql2-0.3.7 y tan pronto como lo hice, RVM ladró diciendo que había encontrado un archivo .rvmrc nuevo o modificado. El contenido de ese archivo fue:
rvm use 1.9.2@mysql2 --create
Me preguntó si quería confiar en este archivo .rvmc. Dije que sí, y le devolví lo siguiente:
Using /Users/dan/.rvm/gems/ruby-1.9.2-p290 with gemset mysql2
Una vez que lo hice, ejecuté el siguiente comando:
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle
Una vez que lo hice, estaba listo para irme. ¡Espero que esto ayude!
Si está usando RVM (una excelente opción) en Mac OS X, aquí está el comando mágico que finalmente funcionó para mí.
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Users/*USERNAME*/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reemplace USERNAME en la sintaxis de manera apropiada según su configuración actual. Y si tu versión de mysql gem es diferente, cambia eso también.
Una alternativa mejor a la herramienta install_name es agregar una ruta de acceso al lib de mysql a su variable de entorno DYLD_LIBRARY_PATH. En / etc / perfil:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib
O, como también tengo instalado Oracle Instant Client, haga lo siguiente:
export ORACLE_HOME="/usr/local/oracle/instantclient_10_2"
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib
Una de las formas más simples y mejores es crear un enlace flexible por comando:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
http://rorguide.blogspot.com/2011/07/getting-error-library-not-loaded.html