[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

dbm on RedHat

David Brodbeck

5/22/2009 5:22:00 PM

A user I support is trying to use the dbm module that's part of Ruby's
standard library, but it doesn't seem to be installed. We're running
RedHat Enterprise Linux 5.3, with Ruby 1.8.5 installed via RPM from
RedHat's repository. We also have Ruby Gems configured. Trying to
require dbm gives this error:

brodbd@patas:~$ irb
irb(main):001:0> require "dbm"
LoadError: no such file to load -- dbm
from /opt/ruby-gems/lib/site_ruby/1.8/rubygems/custom_require.rb:
27:in `gem_original_require'
from /opt/ruby-gems/lib/site_ruby/1.8/rubygems/custom_require.rb:
27:in `require'
from (irb):1
irb(main):002:0>

I can't figure out what additional packages I need to install to make
dbm available, and I'm hoping someone here can help.

I apologize if this is a dumb question, but I'm not terribly familiar
with Ruby, and my attempts to find an answer via Google haven't been
successful.

--

David Brodbeck
System Administrator, Linguistics
University of Washington





3 Answers

David Brodbeck

5/26/2009 7:02:00 PM

0

On May 22, 2009, at 10:21 AM, David Brodbeck wrote:

> A user I support is trying to use the dbm module that's part of
> Ruby's standard library, but it doesn't seem to be installed. We're
> running RedHat Enterprise Linux 5.3, with Ruby 1.8.5 installed via
> RPM from RedHat's repository. We also have Ruby Gems configured.
> Trying to require dbm gives this error:
>
> brodbd@patas:~$ irb
> irb(main):001:0> require "dbm"
> LoadError: no such file to load -- dbm
> from /opt/ruby-gems/lib/site_ruby/1.8/rubygems/custom_require.rb:
> 27:in `gem_original_require'
> from /opt/ruby-gems/lib/site_ruby/1.8/rubygems/custom_require.rb:
> 27:in `require'
> from (irb):1
> irb(main):002:0>
>
> I can't figure out what additional packages I need to install to
> make dbm available, and I'm hoping someone here can help.
>
> I apologize if this is a dumb question, but I'm not terribly
> familiar with Ruby, and my attempts to find an answer via Google
> haven't been successful.


Experimenting a bit more, it doesn't seem to be related to the
environment changes I made to install Ruby Gems, either:

brodbd@patas:~$ unset RUBYOPT ; unset RUBYLIB ; irb
irb(main):001:0> require 'dbm'
LoadError: no such file to load -- dbm
from (irb):1:in `require'
from (irb):1


--

David Brodbeck
System Administrator, Linguistics
University of Washington





Kyle Schmitt

5/26/2009 8:41:00 PM

0

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

Kyle Schmitt

5/26/2009 8:41:00 PM

0

Oops, should have said
> the lack compatibility is something you can live with: none of them can read the other's format.