I have tried to install a program. After I ran ./configure, I got the following message:

configure: WARNING: configure could not find all of the necessary DBM functions.
(dbm_open, dbm_close, dbm_fetch, dbm_store). This probably
means that configure could not find your DBM library, or
that you do not have a DBM library installed. (See above
output for the results of library checks.) Please install
a DBM-compatible library (such as GNU DBM).

I don't know much about DBM, and I found this site to get an idea what DBM is: gdbm - Introduction to GNU @code{dbm}.
However, I am not sure from where exactly to install it. I have found one site with a version gdbm 1.8.3. Is this the last version, and is this the right to download?

Thank you in advance.

03-02-2009

dijetlo

It seems more likely your dbm libraries are not in the search path, try this.
run a "set" and look at the PKG_CONFIG_PATH. Do a find / | grep -i <your_missing_libs> . Once you've found the missing libs, you can link them into the ./confgure statement and compile your app

03-20-2009

gemm

Hi, thank you very much for the reply.
I have written 'set' and I got:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig

Is this Ok? It should point to pkgconfig as it does, shouldn't it?

Then I have typed the following:
find / | grep -i dbm_open

dbm_open is one of my missing libraries. However, what I got as output is many lines like this:
find: _some_path_name_ : Permission denied
For example:
find: /var/lib/slocate: Permission denied

What might be wrong? Is the syntax of my command not correct?

03-20-2009

dijetlo

Quote:

Is this Ok? It should point to pkgconfig as it does, shouldn't it?

Yup, that looks all good to me,

Quote:

find: /var/lib/slocate: Permission denied
What might be wrong? Is the syntax of my command not correct?

Your current user doesn't have sufficient permissions to access the directories. Switch to root with an "su" command or set up your sudo files to support giving your current user root-like permissions.
Your command syntax is perfect, but I would look for the more generic *dbm* instead of the librarie function dbm_open. You'll get a lot more matches and we can quickly weed threw them for the important one. Which program were you originally tryng to install?

03-25-2009

gemm

Hi dijetlo,

thank you again for the reply. I have looked for "dbm" like this:
find / | grep -i dbm

and I get quite a lot of results. I am pasting them below. How do I know which one I need (which one are missing)?
The program, which I want to install is "Infomap". It is a software for Natural Language Processing, here is a link to the download page:Infomap NLP Software -- Home Page

Here are the results for "dbm", which I got after I type find / | grep -i dbm (I am pasting everything):

First two lines suggest gdbm is already installed, the third is the library gdm in directory /usr/lib
Check you're path variable, I think /usr/lib ought to be included

03-25-2009

gemm

I have added the paths of the dbm libraries in my PATH in the .bash_profile file. Now the PATH variable looks like this:
PATH=$PATH:$HOME/bin:/home/gemm/my_programs/jdk1.6.0._07/:/var/log/packages/gdbm-1.8.3-i486-4/:/var/log/scripts/gdbm-1.8.3-i486-4/:/usr/lib/libgdbm.so.2.0.0/:/usr/lib/

However, when I try to execute ./configure, I receive the exact same error message as I have written in my first post.

(I have also restarted the computer).

You have written in one of your posts:
"Once you've found the missing libs, you can link them into the ./confgure statement and compile your app."
What exactly does it mean? Is it just adding the libraries to the PATH variable or something else?

03-25-2009

dijetlo

configure checks for the presence ofl libraries and writes them into things like $PKG_PATH so the gcc can find it when it compiles. If you open the configure file in a text editor, you can see specifically what it's looking for. You know the dbm library is in usr/include/lib. In the configure file is a hard coded search path, just append "usr/include/lib/:" to that path and re-run configure, it should see the lib and load it so it can compile the app.