
Написал
Ян Соболев
06 сентября 2009 в 02:51:04
Вернувшись на днях из Перу и Испании, мы с Олегом неожиданно сами для себя обнаружили, что не можем устоять перед установкой Mac OS X 10.6 Snow Leopard. Так сильно нам хотелось попробовать новую систему, что я поставил её первой, а Олег — всего сутки спустя.
Система прекрасна. В том плане, что работает быстро, мелкие изменения радуют глаз и очень приятны, так как незаметно ускоряют и упрощают общение с компьютером. Но, собравшись вместе чтобы поработать, мы... были повержены в шок. О, как сильно мы ошибались в тебе, ирбис!
Весь наш "Developer Environment" для разработки 500px v2.0 оказался брутально поломан Snow Leopard'ом. Ruby, который в Snow Leopard был обновлён до 1.8.7 (не самая новая версия, заметим), не подружился с MySQL. Путём изучения гугла, решено было поставить новый стабильный билд MySQL (5.1.38) взамен чуть более старой, стоящей на Snow Leopard (потом пробовали и бету 5.4.1, но тоже не помогло).
Так как архитектура Snow Leopard 64-битная, то загружались мы в 64 бита (зажав цифры 4 и 6 при рестарте компьютера) и качали 64-битый MySQL. После чего командой ему проставили флаг (кое-кто на форумах утверждал, что иначе MySQL пытается работать под 32 бит):
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_configУстановка
ruby gem mysql часто не завершалась, прерываясь ошибкой. А после нескольких установок и удалений gem'a, в моей системе навсегда поселился mysql gem 2.8.1, который оставался даже после удаления. Форумы советовали ставить gem 2.7, но его установка была невозможна без удаления mysql 2.8.1.
При старте сервера получали ошибку
dyld: lazy symbol binding failed: Symbol not found: _mysql_init, которую на разных форумах интерпретировали по-разному, в основном советуя удалить
mysql.bundle (у меня на системе его не нашлось вообще)
Одно из решений (которое может помочь некоторым, но не помогло нам) это снести все gems, включая кеш, и переставить их заново. Опять же, удаления gem uninstall mysql ни к чему не приводило, заканчиваясь ошибкой, что такого gem уже нет (но показывая его в списке gems).
В настоящий момент проблема с системой Олега была решена магией и установкой версией gem mysql 2.7, а на мой компьютер мы пока второй раз ставим непослушную кошку, предварительно удалив части Ruby, gems и MySQL.
Материалы на тему решения нашей проблемы (способы помогают
некоторым, но на моём компьютере ни один ни сработал):
• Upgrading to Snow Leopard
• Install MySQL and MySQL Ruby gem on Snow Leopard, 64 bit
• Got MySQL to work with Rails in Mac OS 10.6: Snow Leopard
• Fixing Ruby Gems, MySQL and Passenger Phusion on Snow Leopard 10.6
• Update: Uninstalling gems from .gem directory (помогло удалить неудаляемый mysql gem)