Kyle Schmitt
5/26/2009 8:41:00 PM
I've got a bunch of CentOS 5 boxes here, 5.0 through 5.3. None of
them include dbm by default, but they all include gdbm. If you don't
need "real" dbm, gdbm is probably better anyway ( personal opinion :)
If you want to be really really compatible everywhere, you can use
sdbm, which is pure ruby, or at least included with the core ruby
code.
Libraries dbm gdbm and sdbm all use the same calls (prettymuch), so
you can write your code to use whichever one it can find, as long as
the lack compatibility is something you can live with.
For speed purposes, dbm and gdbm seem the same to me, and sdbm is rather slow.
The big upside of gdbm is that the database files it creates aren't as
dependent on the version of the library: newer versions can read older
databases. With a dbm database, you need that exact same version to
read or modify the library, so it's harder to move it from machine to
machine.
--Kyle