software - Biblioteca no cargada: error libmysqlclient.16.dylib al intentar ejecutar el 'servidor de rieles' en OS X 10.6 con la gema mysql2




ruby on rails windows 10 (16)

He estado luchando con esto por algún tiempo.

He instalado Rails 3, gem, mysql en mi máquina Snow Leopard. Todo iba bien hasta que creé mi primer proyecto e intenté ejecutar

rails server

Al ejecutar esto obtengo:

jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
    from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
    from script/rails:6:in `require'
    from script/rails:6
jontybrook$ 

Por lo que puedo decir, el problema es con la gema mysql2. MySQL parece estar funcionando bien y mi Gemfile hace referencia a mysql2, mi archivo database.yml también parece estar bien.

El error menciona

Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

Y todavía

jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb   em.rb       error.rb      mysql2.bundle result.rb

MySQL2.bundle está ahí?

Si uso la vieja gema mysql, WEBrick arranca bien. Pero eso no es lo ideal, ¿verdad?

He intentado todo lo que Google me puede dar! Cualquier ayuda muy apreciada.


¡He resuelto esto, eventualmente!

Reinstalé Ruby y Rails bajo RVM. Estoy usando la versión 1.9.2-p136 de Ruby.

Después de reinstalar bajo rvm, este error todavía estaba presente.

Al final el comando mágico que lo resolvió fue:

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

¡Espero que esto ayude a alguien más!


Abre una Terminal y ejecuta lo siguiente:

export PATH=$PATH:/usr/local/mysql/bin

Deberia de funcionar.


Así es como funcionó para mí:

Corrí el siguiente comando
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 / lib / myqql2 / mysql2.bundle

Mis entornos:
$ rails -v Rails 3.0.6

$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, para osx10.6 (i386) usando readline 5.1

$ ruby ​​-v
ruby 1.9.2p180 (2011-02-18 revisión 30909) [x86_64-darwin10.7.0]

Espero que esto ayude a alguien.


En la actualización de OSX El Capitán cuando haces esto:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

arroja un error como

ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

Así que para evitar esto, lo que puede hacer es localizar primero libmysqlclient.18.dylib usando el comando

User$ locate libmysqlclient.18.dylib

En mi caso, devolvió /usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib

Así que en lugar de usr/lib/ crearemos un enlace simbólico a usr/local/lib/ como esto:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

Más detalles: https://forums.developer.apple.com/thread/7935


Esto suele suceder cuando se actualiza mysql. La gema mysql2 instalada que se construyó en las antiguas librerías de mysql no puede funcionar con las nuevas. Solo necesito reinstalarlo.

Desinstale mysql2 con gem uninstall mysql2 . Entonces instálalo con gem install mysql2


Gracias, Ogapo! Exportando ese alias funcionó para mí, y luego seguí el enlace, y en mi caso el mysql2.bundle estaba en /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle así Ajusté install_name_tool para modificar ese paquete en lugar de uno en ~ / .rvm y lo hice funcionando de la manera correcta.

Y ahora:

   $ otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
    /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle:
        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7)
        /usr/local/mysql/lib/libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

Hola, me funcionó desde el enlace recomendado de Fredy Andersen.

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql /lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

Solo tuve que cambiar a mi versión de mysql, en el comando, gracias


Jonty, estoy luchando con esto también.

Creo que hay una pista aquí:

otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle:
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7)
    libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

Note que el camino hacia el dylib es, uh, bastante corto?

Estoy tratando de averiguar dónde las instrucciones de instalación de gemas están dejando de lado el camino de dylib, pero es lento ya que nunca he construido una gema yo mismo.

Voy a publicar más si encuentro más!


Lo resolví creando el archivo .rvmrc en mi carpeta de proyectos que contiene:

rvm use <yourrubie>

luego entrando en mi proyecto

cd ~/myprojectpath

entonces corro

bundle install

Mi versión del comando de luvlss:

Mac OSX 10.10.5

MySQL 5.6.27

Pasajero 5.0.21

sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Si estás probando muchos enlaces diferentes, como lo hice yo, haz un poco de limpieza con:

sudo unlink /usr/lib/libmysqlclient.18.dylib


Para mí esto fue solo porque había actualizado mysql pero no había actualizado la gema mysql2: una reinstalación de la gema lo solucionará ...

gem pristine mysql2


Para mi tuve que desinstalar manualmente mysql

brew uninstall mysql
rm -rf /usr/local/var/mysql
brew install mysql

Sólo se encontró con este problema. Todo lo que tuve que hacer es desinstalar mysql2 gem y reinstalarlo. Espero que esto funcione para otras personas.


Si estás usando OSX y has instalado mysql usando brew, puedes:

brew link mysql

Si tiene problemas con la versión (tenía mysql 5.7 en ejecución mientras que mi gema requería 5.6.25), puede

brew unlink mysql
brew switch mysql 5.6.25

Todavía encontré que con las soluciones anteriores, no funcionó (por ejemplo) con el complemento Rails para TextMate. Recibí un error similar (al recuperar el esquema de la base de datos).

Entonces, ¿qué hizo es, terminal abierta:

cd /usr/local/lib
sudo ln -s ../mysql-5.5.8-osx10.6-x86_64/lib/libmysqlclient.16.dylib .

Reemplace mysql-5.5.8-osx10.6-x86_64 con su propia ruta (o mysql).

Esto hace que un enlace de símbolo a lib, ahora rails se ejecute desde la línea de comandos, así como complementos TextMate como ruby-on-rails-tmbundle .

Para que quede claro: esto también corrige el error que se produce al iniciar el servidor de rieles.


Tuve este problema al trabajar con Django, uso brew para instalar muchos de mis programas de código abierto y tuve que hacer lo siguiente ya que usé brew para instalar mysql :

sudo ln -s /usr/local/Cellar/mysql/5.5.20/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

¡Asegúrese de reemplazar con su versión de las bibliotecas!





webrick