2012-02-21 53 views
1

我試圖通過安裝結合使用Cassandra的數據庫Ruby綁定:是否可以使用Ruby的Cassandra NoSQL數據庫?

sudo gem install cassandra 

,並試圖加載它:

require 'cassandra' 

不幸的是,這種失敗,錯誤:

Gem::LoadError: RubyGem version error: thrift_client(0.8.1 not ~> 0.7.0) 

我已經通過安裝過時的依賴關係修復了它:

sudo gem install thrift_client -v "~> 0.7.0" 

但在那之後另一個引發錯誤,我不知道如何解決:

LoadError: no such file to load -- thrift_client/connection 

測試在Ubuntu 11.10和OSX 10.7,兩者的Ruby 1.8.7和1.9.3-P0。我是做錯了什麼,或者Cassandra和Ruby不打算一起工作?

+0

當你需要'cassandra'或其他地方時,第二個錯誤(「沒有這樣的文件加載」)會立即發生嗎? – 2012-02-21 16:00:23

+0

@Dylan馬上,它是卡桑德拉的內部錯誤。你可以自己測試一下。 – grigoryvp 2012-02-21 16:30:25

+0

那麼當我遵循你的確切步驟時,我可以重現第一個錯誤,但在安裝0.7.0版本後,'require'cassandra''工作得很好。你有沒有嘗試刪除*所有* thrift_client版本,以確保0.8.0不干擾? – 2012-02-21 18:30:25

回答

3

github上的最新提交表明他們即將推出新版本。這個可能沒有提到的依賴問題。

我創建了一個要點,應該幫助您設置您的項目正確的:https://gist.github.com/1878226

0

我想知道是否使用JRuby是一種選擇嗎?在這種情況下,您將能夠使用Cassandra的Java客戶端,並且我期望能夠爲它提供更好的支持和更好的結果。

2

我和我的團隊有很多的問題,使用原來的卡珊德拉寶石。 寶石似乎已被開發者拋棄(最後,0.12.1,發佈於2011年8月22日),並且與節儉v0.8不兼容。使用thrift v0.7對我們來說不是一種選擇,因爲你不能在Ubuntu上編譯它而不會破解一些.c文件,所以我們決定使用mcmire-cassandra gem代替 - http://rubygems.org/gems/mcmire-cassandra

儘管mcmire在修復原始Gem方面做得非常出色,但在提供的功能方面,cassandra的ruby客戶端仍然處於競爭背後。如果您期望高負載並需要連接池等功能,則可以考慮使用支持它的Python或Java客戶端。

希望這會有所幫助。

相關問題