views:

529

answers:

2

I am trying to install cvs2svn on a Solaris 10 machine. It has Python 2.4.4 on it. I don't have root access. When I downloaded cvs2svn and tried to run it, it said

ERROR: cvs2svn uses the anydbm package, which depends on lower level dbm libraries. Your system has dbm, with which cvs2svn is known to have problems. To use cvs2svn, you must install a Python dbm library other than dumbdbm or dbm. See http://python.org/do​c/current/lib/module​-anydbm.html for more information.

I downloaded gdbm, compiled, and installed it in my home directory. How do I get a Python gdbm module installed that works with anydbm? Google isn't helping...

A: 

Set the $PYTHONPATH environment variable to point to the location where you installed gdbm. Then when you run cvs2svn, the anybdm module should find gdbm successfully.

Greg Ball
That doesn't appear to work. Could this be part of it?ls -l /usr/lib/python2.4/lib-dynload/*db*-rwxr-xr-x 1 root bin 12176 Jan 31 2007 /usr/lib/python2.4/lib-dynload/dbm.so*
David I.
Firstly, I think the solution you settled on is the most bulletproof. On the other hand, I'm not sure how to interpret your comment exactly. I think you're suggesting that dbm is found and therefore gdbm is ignored. Check the source for anydbm... will it look for dbm or gdbm first? If dbm first, then I guess my original answer is wrong. I think cvs2svn should really include logic to deal with this properly! Requiring that you DON'T have dbm installed is not nice.
Greg Ball
cvs2svn *does* go to contortions to try to choose a decent database backend for anydbm; see http://cvs2svn.tigris.org/source/browse/cvs2svn/trunk/cvs2svn_lib/database.py?view=markup for the hairy details.
mhagger
+1  A: 

I downloaded Python 2.5.1 and compiled it from the source. I made sure my gdbm libraries were in the appropriate paths and used the altinstall into my home directory. I can now run cvs2svn with my private copy of python.

David I.