Проблема с самоцветами MySQL после обновления до Snow Leopard - PullRequest
3 голосов
/ 29 декабря 2010

Только что обновлен до снежного барса. После долгих раздумий мне удалось запустить и запустить MySQL.

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

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

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

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

/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

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

Ответы [ 4 ]

3 голосов
/ 07 января 2011

Удалил / удалил все экземпляры rvm, ruby ​​и rails, затем выполнил чистую установку, следуя этому руководству: http://www.cowboycoded.com/2010/12/04/setting-up-rails-3-on-mac-osx-snow-leopard-10-6-4/

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

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

0 голосов
/ 30 сентября 2011

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

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

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

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

Короче говоря, убедитесь, что ваш исполняемый файл ruby ​​соответствует версии набора инструкций, в которую встроены ваши пакеты ruby ​​/ rails.

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

0 голосов
/ 06 января 2011

Есть пара вещей, которые нужно сделать:

Если вы не перекомпилировали Ruby под управлением RVM, вы захотите это сделать. До Snow Leopard они собирались как i386 32-битные приложения. После этого они должны быть 64-разрядными x86. Итак, используя RVM, выполните 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 ]

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

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

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

Полезные команды для диагностики: gem env и rvm info.

0 голосов
/ 06 января 2011

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

Тогда вот что меня достало: gem uninstall mysql2

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

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

export ARCHFLAGS="-arch i386 -arch x86_64"

перед тем как установить sudo gem установите mysql2

...