2010-11-23 32 views
1

從Passenger(使用Apache)中獲取此錯誤。不知道這意味着什麼......乘客錯誤「庫未加載」

dlopen(/path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): 
Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib 
Referenced from: /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
Reason: image not found - /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 

安裝紅寶石實際上是1.9.2,但寶石都因爲種種原因,這個「1.9.1」路徑...

難道有東西用事實我用mysql2寶石而不是mysql

或者,也許可以將它有事情做與二號線「庫未加載」它看起來像它可能會試圖加載錯誤libmysqlclient.16.dylib?由於路徑/usr/local/mysql指向未運行的mysql版本。運行的mysql的版本是/usr/bin/我試圖改變這一點,但我不知道如何!?!

回答

3

announcement for Ruby 1.9.2說:(原文如此)

這個版本是 「librariry兼容版本」。 Ruby 1.9.2幾乎兼容1.9.1,因此該庫安裝在1.9.1目錄中。

這就是爲什麼紅寶石目錄被命名爲「1.9.1」;這是正常的。


你的mysql2寶石的情況下建對/usr/local/mysql/lib/libmysqlclient.16.dylib庫。由於某種原因,該庫目前不能在您的系統上使用該路徑名(MySQL已移除/移動/升級?)。


你可能需要重建mysql2寶石,並將其指向mysql_config(或mysql_config5)從你的MySQL安裝(在/usr/bin?):

gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config 
+0

謝謝!出於好奇,我正在學習,我會在哪裏閱讀這樣的構建選項?我已經看過** mysql2 ** docs 但找不到任何提及。在Rails等隱藏的「幕後」......可能令人沮喪。 – Meltemi 2010-11-23 18:31:11