さくらの共用サーバーにTokyo Cabinetをインストールしてrubyから使う

Kyoto Cabinetを使ってみようかと思っていたのだけれど、メモリ不足のせいか上手くコンパイルできなかったので、Tokyo Cabinetに乗り換えた。

さくらインターネットのレンタルサーバーにtokyocabinetとRuby APIをインストール - 深く、広く、高く

ほとんど上記の通りで上手くいった。

ただし二点のみ。

  1. make コマンドでは上手くいかず、gmakeだとできた。
  2. requireするときに下記のようにそんなライブラリ無いと怒られた
irb(main):001:0> require 'tokyocabinet'
LoadError: no such file to load -- tokyocabinet


二番目の問題については cshrcを編集して $RUBYLIB に「:$HOME/local/lib/ruby」とか追記してPATHを通してやって解決した。他にもやりようはあるかもしれないけどとりあえず使えたからOK

irb
irb(main):001:0> require 'tokyocabinet'
=> true
irb(main):002:0> include TokyoCabinet
=> Object
irb(main):003:0> tcdb = TokyoCabinet::ADB::new
=> #<TokyoCabinet::ADB:0x28431fac @adb=#<TokyoCabinet::ADB_data:0x28431f34>>
irb(main):004:0> tcdb.open('*')
=> true
irb(main):005:0> tcdb["foo"] = "bar"
=> "bar"
irb(main):006:0> printf("%s\n", tcdb["foo"])
bar
=> nil

できた。