2012-02-19 3 views
4

Я запускаю OSX 10.7 (Lion) и недавно удалил MacPorts, потому что MySQL не запускался. MySQL (64-разрядная версия) теперь запускается, но теперь я не могу установить MySQL gem (Rails). Я пробовал использовать опцию with-mysql-config и ARCHFLAGS, ни одна из которых не работала. Я попытался переустановить Ruby 1.9.3, который тоже ничего не изменил. В настоящее время я запускаю MySQL 5.1.61 после того, как я думал, что MySQL 5.0.95 может вызвать проблему. Вот отслеживающий:Mac OSX: ошибка установки MySQL gem (RoR)

Christy$ gem install mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    /Users/Christy/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
creating Makefile 

make 
compiling client.c 
client.c: In function ‘rb_raise_mysql2_error’: 
client.c:98: warning: ISO C90 forbids mixed declarations and code 
client.c: In function ‘rb_mysql_client_socket’: 
client.c:590: warning: ISO C90 forbids mixed declarations and code 
compiling mysql2_ext.c 
compiling result.c 
linking shared-object mysql2/mysql2.bundle 
ld: file not found: /opt/local/lib/libssl.1.0.0.dylib for architecture x86_64 
collect2: ld returned 1 exit status 
make: *** [mysql2.bundle] Error 1 

Я попытался переустановить OpenSSL (думая, что file not found: /opt/local/lib/libssl.1.0.0.dylib может быть из-за этого), но она по-прежнему не работает. Я как бы новичок в этом, поэтому любая помощь будет очень признательна! Спасибо!

EDIT: /opt/local/lib/ не существует. Я не знаю, почему он ищет файл. Любые идеи о том, как направить его в нужное место (locate libssl, указывают на /usr/lib/libssl.0.9.8.dylib и /usr/local/Cellar/openssl/0.9.8s/lib/libssl.0.9.8.dylib, среди других мест)?

ответ

1

LD_LIBRARY_PATH имеет плохой путь к ней. Можно временно установить его для этой оболочки, запустив export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib ; gem install mysql2.

Однако, может предложить добавить определение к вашему .bashrc (или другим соответствующим .shellrc файл) export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib так все оболочки получить его.

+0

Все еще не работает. Другие идеи? – trilobyte

+0

Хм. Кажется, что у ld есть тот путь, который вы удалили в кеш (?). Странный. Единственное, о чем я могу думать, не зная остальных о вашей настройке, делает «LD_LIBRARY_PATH =/usr/local/lib:/usr/lib gem install mysql2», но это все равно должно быть по умолчанию. Можете ли вы «откликнуться на $ LD_LIBRARY_PATH», возможно, неправильно установлены в вашей оболочке? – rnicholson

+0

Ничего не возвращается из 'echo $ LD_LIBRARY_PATH'. Мысли? – trilobyte

0

Не уверен, но, возможно, вам необходимо установить пакет libssl-Dev, чтобы получить его скомпилировать

+0

Я думаю, что это только для Linux, правильно? – trilobyte

+1

не уверен. просто одна из вещей, которые я ищу, если сборки не работают на моей машине. @trilobyte: еще один момент может заключаться в том, что вам, возможно, придется использовать «sudo gem install mzsql2». особенно драгоценные камни, которые требуют сборки, часто требуют разрешения root. а часть «для архитектуры x86_64» может дать некоторый намек. существует ли файл вообще? если это так, возможно, по какой-то причине это 32 бит. –

+0

Вы правы, файл не существует. Я не знаю, почему он там смотрит. Есть пакеты dylib в '/ usr/local/lib', но не' libssl.1.0.0.dylib'. Вы знаете, где это может быть, или почему он ищет в директории, которая не существует? – trilobyte

2

Моя проблема была похожа, и оказалось, что я установил mysql с варевом, а macports все еще был установлен. После fully uninstalling macports Затем я удалил и переустановил MySQL с варевом:

brew uninstall mysql 
brew install mysql 
+0

Удивительный! Я просто перешел из macports в homebrew, и я не знал, что это может вызвать ошибку. – ExiRe

2

я должен был установить путь к моей установке, бд было 5,1. Сделав это, тогда это сработало:

export ARCHFLAGS="-arch x86_64" 
export PATH=$PATH:/opt/local/lib/mysql51/bin 
Смежные вопросы