Red Hat Bugzilla – Bug 77351
NDBM_File missing from perl installation.
Last modified: 2007-04-18 12:48:10 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020823
Description of problem:
The NDBM_File module is missing from the perl distribution. Attempting to
reinstall it with CPAN claims that it will be installed from the perl
distribution and not a module distribution so I assume it should have been in
You broke my scripts.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.Install RedHat 8.0
2.Run a perl script which uses NDBM_File
Actual Results: Perl script exits with message to effect that "NDBM_File could
not be found".
Expected Results: Perl script runs.
ndbm has been removed from RH Linux 8.0 because of conflict issues with berkeley
db. you should be able to open any ndbm files with DB_File, though. You may
need to perform a db_dump followed by a db_load to reload the files, or dump
them into an intermediate file format from an older system. DB_File and
GDBM_File are the supported tied database interfaces.
I don't know if it would be too much trouble for you, but in a case like this,
installing a stub package that printed an error message about being deprecated
and using a substitute, might help reduce the number of bug reports. For example:
$ cat >/usr/lib/perl5/5.8.0/NDBM_File.pm << EOF
> package NDBM_File;
> die "NDBM_File obsoleted as of RedHat 8.0. Please use GDBM_File or DB_File
instead. For more information, please see
Oh, and the Memoize::NDBM_File package probably shouldn't be installed. It uses
$ find /usr/lib/perl5/5.8.0/ -name NDBM_File.pm
$ rpm -q --whatprovides /usr/lib/perl5/5.8.0/Memoize/NDBM_File.pm
$ sed -n 13p /usr/lib/perl5/5.8.0/Memoize/NDBM_File.pm
good point; Memoize::NDBM_File will be removed from future builds. Changing
NDBM_File to report warnings though is a bit more intrusive a change; we'll
consider it, but for now I'm leaning towards leaving it as-is.