Dominic Widdows - 2006-09-04

Over the months there have been a variety of problems in the general area of getting the infomap-nlp software working properly with the gnu dbm libraries. I think several users have encountered this and sometimes found workarounds or had to install extra things. Mosts recently, I had just the same problem getting the infomap-nlp software to compile on ubuntu. Scott helped me to fix the problem, and I thought I should post a summary of what it was.

I had installed the libgdbm3 package on my new OS. Generally there will always be some gdbm package you will want to have installed. However, the infomap "./configure" script couldn't find any of the library functions and so failed. Scott suggested the following:

> Hi Dominic,
>
>    Okay, regarding infomap-nlp on Ubuntu.  The script reports two
> problems, failing to find the DBM header files, and failing to find the
> appropriate library functions.  Let's take these one at a time, in that
> order, and with luck maybe even solving the first problem will lead the
> second to take care of itself, you never know.
>
>    For the header files, check your /usr/include directory.  Search
> it for files whose names contain ndbm or gdbm.  E.g.
>
>    $ find -name '*ndbm*'
>    $ find -name '*gdbm*'
>
> I have the files /usr/include/gdbm.h and /usr/include/gdbm-ndbm.h.  I also
> have the symbolic link, ndbm.h, which points to gdbm-ndbm.h.  If you have
> the first two files, make the ndbm.h->gdbm-ndbm.h symbolic link and try
> configuring again.  If not, tell me what you do have and we'll go from
> there.

It turned out that I didn't have any of these dbm files at all in /usr/include. To begin with, I needed to install a libgdbm-dev package, which contains developer tools and headers that were necessary for infomap to call the gdbm libraries. (Other compatability issues we've seen in the past are affected by libgdbm_compat - if you encounter a problem this is another name to look for ...)

The libgdbm-dev package installed several gdbm related headers to /usr/include. I did need to create the symbolic link Scott refers to above (ln -s gdbm-ndbm.h ndbm.h). Once I had done this final step, configure, make, make install worked just fine and I could start building infomap models on my new system.

Thanks very much to Scott for helping out once again, and I hope this message is useful to others who may encounter similar problems.