2012-03-16 61 views
2

GDBM看起來很有趣,一種持久哈希或鍵值存儲。但是,示例代碼不運行:標準庫中的GDBM不見了還是隻是我?

require 'gdbm' 

導致此錯誤:

cannot load such file -- gdbm (LoadError)

我使用Ruby 1.9.3在Ubuntu。文檔錯誤或者我的Ruby安裝有問題?

+0

打字'需要GDBM'會導致完全不同的錯誤比你得到。你究竟輸入了什麼* *? – 2012-03-16 22:02:26

+0

@Andrew Marshall只是複製了文檔中的代碼,但我一定已經搞糟了。感謝和編輯。 – steenslag 2012-03-16 22:08:46

+0

這對我來說很好。你是如何安裝Ruby的? – 2012-03-16 22:23:09

回答

6

GDBM是一個爲GNU數據庫庫提供API的庫,您可能尚未安裝該庫。 Ruby標準庫文檔建議僅在底層庫在您的系統上可用時纔可用。 (沒有一點提供一個不能連接任何東西的庫!)用apt-get安裝libgdbm3,確認你有你的庫(例如,'找到libgdbm'),然後重新安裝/更新你的ruby 1.9以將庫合併到你的ruby中。

+0

我發現奇怪的是它沒有在[ruby-doc.org]中提及(http://ruby-doc.org//stdlib-2.1.5/libdoc/gdbm/rdoc/GDBM.html) – Automatico 2015-02-20 13:16:47

+0

提到Linux下面由費爾南多·阿爾梅達在OS X優勝美地與自制軟件,我不得不''brew unlink gdbm && brew link gdbm'因爲libgdbm已經安裝但沒有正確鏈接。你也可以通過'brew install gdbm'安裝它。然後你可以'gem install gdbm'。如果** libgdbm **庫在您的系統上不可用,則可能會發生此錯誤:'無法打開庫'libgdbm.dylib'' – microspino 2015-08-05 15:32:15

3

使用Ruby 2.1.2和Rbenv我解決了這個有:

$ apt-get install libgdbm3 
$ ln -s /usr/lib/x86_64-linux-gnu/libgdbm.so.3 /usr/lib/x86_64-linux-gnu/libgdbm.so 
$ gem install gdbm 

現在的作品

$ irb 
irb(main):001:0> require 'gdbm' 
=> true