2010-11-08 67 views
1

我無法再啓動我的服務器。不知道發生了什麼,但是當我運行「軌道的」我得到這個錯誤:當我運行「rails服務器」時找不到sqlite3符號

Core:pocketbook lee$ rails s 
dyld: lazy symbol binding failed: Symbol not found: _sqlite3_initialize 
    Referenced from: /Users/lee/Dropbox/Apps/pocketbook/ruby/1.9.1/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle 
    Expected in: flat namespace 

dyld: Symbol not found: _sqlite3_initialize 
    Referenced from: /Users/lee/Dropbox/Apps/pocketbook/ruby/1.9.1/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle 
    Expected in: flat namespace 

這很奇怪,但因爲我使用的紅寶石1.9.2與RVM。當我運行「哪個紅寶石」時,它重新運行「.rvm/rubies/ruby​​-1.9.2-head/bin/ruby​​」

不知道我能做些什麼來導致這個問題。

+0

我擺脫了RVM使用「RVM內爆」,然後重新安裝它。這似乎解決了一些問題,但在某些時候我必須刪除一個lib目錄,因爲當我試圖安裝rails時,我得到了「File not found:lib」 – 2010-11-09 01:08:57

+0

另外,當我運行「bundle install」時,它看起來工作正常,但是當我然後嘗試用「rails server」啓動我的服務器時,我收到了一堆與sqlite相關的錯誤。爲了測試這個,我試圖在我的機器上安裝sqlite3-ruby以外的我的機器上,我得到這些錯誤:錯誤:錯誤安裝sqlite3-ruby: \t錯誤:無法構建gem本機擴展。 ... 檢查在-lsqlite3 sqlite3_libversion_number()...是 檢查rb_proc_arity()...是 檢查sqlite3_initialize()...沒有 sqlite3的,紅寶石僅支持sqlite3的版本3.6.16+,請升級! *** extconf.rb失敗*** – 2010-11-09 01:14:34

回答

1

我已經看到這個問題出現了幾次它可能導致這種情況發生的原因之一是sqlite3的版本是錯誤版本的露水。有時您可以安裝sqlite3-ruby gem,但不能與您正在運行的sqlite版本兼容。

確保您的sqlite3版本高於3.6.16

要檢查只需運行sqlite3的-version,你就知道了。簡單的解決方案就是更新sqlite。

我有,當我決定刪除MAC端口的任何痕跡,並切換到brew

3

好吧,看來最新版本的sqlite3不能很好地與OS X Leopard配合使用。所以,我必須指定在我的gemfile中使用的sqlite3版本。我添加了這一行:
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

給其他人有這些問題。

0

你可能也檢查你的位置pwd,請檢查您是否在正確的水平(路徑)這個錯誤發生...聽起來很愚蠢,但我只花了一小時試圖解決這個問題,唯一改變的是一個路徑(palmface)一切都很好

相關問題