2010-12-29 1 views
3

Просто обновлен до Snow Leopard. После долгих беспорядков мне удалось запустить MySQL и запустить его.Ошибка MySQL gem после обновления до Snow Leopard

Теперь я пытаюсь заставить среды Rails работать. Для проекта я использую Rails 3.0.3 и 1.8.7 рубин

Я установил mysql2 камень с помощью следующей команды:

sudo gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

Когда я запускаю рельсы сервера я получаю следующее ошибка:

/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): no suitable image found. Did find: (LoadError) 
/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: mach-o, but wrong architecture - /Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
from /Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2.rb:7 

Есть ли у кого-нибудь подобная проблема и знаете, как это исправить? Я больше дизайнер, чем разработчик, поэтому это не будет моей сильной областью. Цените любые указатели.

ответ

0

Я только что прошел через что-то подобное вчера с некоторыми другими драгоценными камнями после обновления до Snow Leopard. У меня очень похожие ошибки, потому что он пытался использовать старые 32-битные библиотеки, когда SL искал 64-битные версии. Во-первых, убедитесь, что вы установили 64-битную версию MySQL, потому что вы будете использовать это сейчас.

Тогда, то, что у меня: камень деинсталлировать mysql2

Оказывается, у меня был камень установлен в два раза и Rails пытается загрузить неправильную (32bit) версию, хотя я был правильным, установленные в другом месте.

Кроме того, при установке MySQL гема вы можете попробовать

export ARCHFLAGS="-arch i386 -arch x86_64" 

перед вами SUDO жемчужины установить mysql2

0

Есть несколько вещей, чтобы сделать:

Если вы Ждете» t перекомпилируйте Ruby под контролем RVM, вы захотите это сделать. До Snow Leopard они собирались как i386 32-разрядные приложения. Впоследствии они должны быть x86 64bit. Итак, используя RVM do rvm uninstall на вашем Ruby 1.8.7, затем снова rvm install. Вы можете проверить, нужно ли вам, чтобы сделать это, запустив rvm list:

rvm list 

rvm rubies 

    ruby-1.8.7-p330 [ x86_64 ] 
=> ruby-1.9.2-p136 [ x86_64 ] 

рубин, либо 1.8.7 или 1.9+, будет x86_64, когда правильно настроена для Snow Leopard.

После этого вы можете запустить gem pristine, чтобы восстановить все свои драгоценные камни. Как часть этого процесса он будет перестраивать родные драйверы, которые также должны перекомпилировать как x86_64.

Кроме того, рекомендуется поддерживать относительную текучесть RVM. Самый последний rev, с сегодняшнего вечера, - v1.1.13, поэтому, если ваш возраст старше, вы можете сделать rvm get head, чтобы догнать его.

Полезные команды, помогающие диагностировать вещи: gem env и rvm info.

3

Ый/удалены все экземпляры РВМ, рубин и рельсов затем сделал чистую установку после этого руководства: http://www.cowboycoded.com/2010/12/04/setting-up-rails-3-on-mac-osx-snow-leopard-10-6-4/

И все работало. Hoorah!

Также был понижен MySQL на одном этапе, поэтому не было уверенности в том, что это повлияло на конечный результат или нет.

0

У меня недавно возникла аналогичная проблема, когда рельсы выбрасывали ошибку «но неправильная архитектура, не подходящая для изображения» при запуске консоли рельсов или сервера рельсов.

Выполнение file файлов ассоциированных файлов .dylib и самоцвета, как правило, возвращало либо применимую версию x86_64, либо универсальную, которая включала ее. В конце концов, я проследил его до фактической версии Ruby, в которой я работал. Сам исполняемый файл/usr/bin/ruby ​​был совместим только с i386. Это был действительно шокер, поскольку я предположил, что новый xcode и osx 10.7 приведут мне 64-битный рубин.

Используя RVM, я установил еще один экземпляр рубина (снова 1.8.7). Для этого потребовалось установить новый экземпляр readline (для которого я использовал homebrew: brew install readline) и установил rvm с rvm install 1.8.7 --with-readline-dir=/usr/local/Cellar/readline/6.2.1/.

После этого, и переключения, чтобы использовать мой новый рубиновый экземпляр (rvm use 1.8.7), все мои драгоценные камни пропали (РВМ инсталляции какой-то образом изменила мое по умолчанию gem_path.) gem install rake, а затем gem install bundler, а затем bundle install получил меня и работает ,

Короче говоря, убедитесь, что ваш рубин исполняемым соответствует версии набора команд, что ваши рубиновый/пакеты рельсы были построены в

Этот блог был весьма полезным, а также:. http://www.markhneedham.com/blog/2010/07/08/installing-ruby-1-9-2-with-rvm-on-snow-leopard/