Проблемы с Rails gem mysql2 на OS X 10.7 с Ruby 1.9.2 и Rails 3.1 - PullRequest
1 голос
/ 27 сентября 2011

Версия ОС: Mac OS X 10.7.1 Lion
Рубиновая версия: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]
Рубин Местоположение: /usr/local/rvm/bin/ruby
Рельсы Версия: Rails 3.1.0
Рельсы Местоположение: /usr/local/rvm/gems/ruby-1.9.2-p290/bin/rails

Теперь я установил гем mysql2, и когда я запускаю gem list, он отображается в списке как: mysql2 (0.3.7)

Пока все хорошо, верно? Хорошо, вот где это становится сложно. Что бы я ни делал, я не могу запустить сервер. В терминале я перехожу в каталог, в котором находится мое приложение rails, и запускаю rails s. Однако вместо запуска я получаю это:

/usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.7/lib/mysql2.rb:9:in `require': dlopen(/usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle
  Reason: image not found - /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.7/lib/mysql2.rb:9:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `block in require'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler.rb:120:in `require'
    from /Users/doug/Sites/simple_cms/config/application.rb:7:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:52:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:52:in `block in <top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:49:in `tap'
    from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:49:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Очевидно, это не то, что должно происходить. Проблема в том, что я не могу понять, почему нет. Ни одно из решений, с которыми я сталкивался, не сработало.

На самом деле это моя первая попытка заставить Ruby / RoR работать на моем компьютере. Я следую учебному пособию от Lynda.com и, что неудивительно, этого не случается с парнем, который снимает видео.

Я пытался искать, и, как я уже сказал, похоже, ничего не помогло. Идеи?

1 Ответ

2 голосов
/ 27 сентября 2011
install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-1.9.2-p290@[gemset name]/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle

[имя набора гемов] = имя используемого вами набора гемсетов - если вы его не устанавливали, то вы должны установить его, так как это один из основных пунктов получения rvm

надеюсь, что это поможет

...