[pybsddb] How to install bsdbb?

alanpae at ilkda.com alanpae at ilkda.com
Mon Oct 25 21:53:28 CEST 2010


Hi,

I've been hunting around for some tutorial on how to properly build and
install python with bsdbb support but haven't been having much luck.

I'm using a stock OpenSolaris system which has python 2.6.4 installed by
default.  Apparently I need both socket and bsddb support for the RSS
Feed Reader called straw.

Socket support seems to work ok but I can't figure out how to get bsddb
support.

I compiled Berkeley DB 5.1.19 and then download bsdbb3-5.0.0.  By using
the --berkeley-db=/path statement it seemed to find everything and was
happy.  Then python setup.py installed and it seemed to install.

So far so good I thought.  I compiled up the rest of the dependencies
for straw and when it got to bsdbb it barfed.   It complained that it
couldn't find it.

So I ran truss to find out what it was looking for.

It apparently does a lot of searching for a file or files:

stat64("/build/straw-0.27/bsddb", 0x080458C0)    Err#2 ENOENT
open64("/build/straw-0.27/bsddb.so", O_RDONLY)    Err#2 ENOENT
open64("/build/straw-0.27/bsddbmodule.so", O_RDONLY) Err#2 ENOENT
open64("/build/straw-0.27/bsddb.py", O_RDONLY)    Err#2 ENOENT
open64("/build/straw-0.27/bsddb.pyc", O_RDONLY)    Err#2 ENOENT
stat64("/usr/lib/python2.6/bsddb", 0x080458C0)    Err#2 ENOENT
open64("/usr/lib/python2.6/bsddb.so", O_RDONLY)    Err#2 ENOENT
open64("/usr/lib/python2.6/bsddbmodule.so", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/bsddb.py", O_RDONLY)    Err#2 ENOENT
open64("/usr/lib/python2.6/bsddb.pyc", O_RDONLY) Err#2 ENOENT
stat64("/usr/lib/python2.6/plat-sunos5/bsddb", 0x080458C0) Err#2 ENOENT
open64("/usr/lib/python2.6/plat-sunos5/bsddb.so", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/plat-sunos5/bsddbmodule.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/plat-sunos5/bsddb.py", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/plat-sunos5/bsddb.pyc", O_RDONLY) Err#2
ENOENT
stat64("/usr/lib/python2.6/lib-tk/bsddb", 0x080458C0) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-tk/bsddb.so", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-tk/bsddbmodule.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/lib-tk/bsddb.py", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-tk/bsddb.pyc", O_RDONLY) Err#2 ENOENT
stat64("/usr/lib/python2.6/lib-old/bsddb", 0x080458C0) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-old/bsddb.so", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-old/bsddbmodule.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/lib-old/bsddb.py", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-old/bsddb.pyc", O_RDONLY) Err#2 ENOENT
stat64("/usr/lib/python2.6/lib-dynload/bsddb", 0x080458C0) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-dynload/bsddb.so", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-dynload/bsddbmodule.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/lib-dynload/bsddb.py", O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/lib-dynload/bsddb.pyc", O_RDONLY) Err#2
ENOENT
stat64("/usr/lib/python2.6/site-packages/bsddb", 0x080458C0) Err#2
ENOENT
open64("/usr/lib/python2.6/site-packages/bsddb.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/site-packages/bsddbmodule.so", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/site-packages/bsddb.py", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/site-packages/bsddb.pyc", O_RDONLY) Err#2
ENOENT
stat64("/usr/lib/python2.6/vendor-packages/bsddb", 0x080458C0) Err#2
ENOENT
open64("/usr/lib/python2.6/vendor-packages/bsddb.so", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/vendor-packages/bsddbmodule.so", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/bsddb.py", O_RDONLY) Err#2
ENOENT
open64("/usr/lib/python2.6/vendor-packages/bsddb.pyc", O_RDONLY) Err#2
ENOENT
stat64("/usr/lib/python2.6/vendor-packages/gst-0.10/bsddb", 0x080458C0)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gst-0.10/bsddb.so", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gst-0.10/bsddbmodule.so",
O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gst-0.10/bsddb.py", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gst-0.10/bsddb.pyc",
O_RDONLY) Err#2 ENOENT
stat64("/usr/lib/python2.6/vendor-packages/gtk-2.0/bsddb", 0x080458C0)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gtk-2.0/bsddb.so", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gtk-2.0/bsddbmodule.so",
O_RDONLY) Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gtk-2.0/bsddb.py", O_RDONLY)
Err#2 ENOENT
open64("/usr/lib/python2.6/vendor-packages/gtk-2.0/bsddb.pyc", O_RDONLY)
Err#2 ENOENT

So I did a find trying to find something and got:

/usr/include/python2.6/bsddb3/bsddb.h
/usr/lib/python2.6/site-packages/bsddb3/_pybsddb.so
/usr/lib/python2.6/test/test_bsddb.py
/usr/lib/python2.6/test/test_bsddb.pyc
/usr/lib/python2.4/test/test_bsddb.py
/usr/lib/python2.4/test/test_bsddb.pyc
/opt/openoffice.org/basis3.2/program/python-core-2.6.1/lib/test/test_bsddb.py
/build/bsddb3-5.0.0/build/lib.solaris-2.11-i86pc-2.6/bsddb3/_pybsddb.so
/build/bsddb3-5.0.0/build/temp.solaris-2.11-i86pc-2.6/Modules/_bsddb.o
/build/bsddb3-5.0.0/Modules/bsddb.h
/build/bsddb3-5.0.0/Modules/_bsddb.c

Which as you can see doesn't match anything that it's looking for.

So I grabbed Python 2.7 and compiled it up.  configure said that bsdbb
support would not be compiled in but I installed it anyways.  That's
when I learned that socket support wasn't working.  I have no idea how
to fix either.

Any suggestions?

thanks in advance,
alan 



More information about the pybsddb mailing list