Difference between revisions of "Install latest BSDDB"
(New page: Some people have encountered bugs in GRAMPS which are due to the database not working good. Installing the lastest version of the BSDDB database tends to solve the problem. [[Category:Deve...) |
m |
||
(26 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
− | Some people have encountered bugs in | + | Some people have encountered bugs in Gramps which are due to the database not working well. |
− | [[ | + | |
+ | Installing the latest version of the [[Gramps_Glossary#bsddb|BSDDB]] database tends to solve the problem. | ||
+ | |||
+ | '''This guide is for version {{version}} of Gramps, for earlier versions, you need to manually change python files!''' | ||
+ | |||
+ | == Why install the latest version ? == | ||
+ | Some errors have happened in the past outside of Gramps version 2.2.x, with the [[Database_Backends#BSDDB_Backend|BSDDB database]] format Gramps used. See Bugs: {{bug|110}} and {{bug|814}} | ||
− | + | It can be expected that recompiling BSDDB could solve those problems. However, if BSDDB needs to be recompiled, one might as well install the latest version. | |
− | |||
− | |||
− | |||
− | + | Furthermore, the people of PyBSDDB (the Python "bindings" project for the Oracle Berkeley DB) recommend doing a local compile if the use of BSDDB is critical. | |
− | + | For genealogists needing Gramps, a stable database could certainly be considered a critical need. | |
== Before you begin: BACKUP == | == Before you begin: BACKUP == | ||
− | + | Take a backup of your genealogical data before you do this. Remember, you should backup data of Gramps in .gramps format, and keep that somewhere save (GRDB format is NOT a good backup format!). | |
− | Take a backup of your genealogical data before you do this. Remember, you should backup data of | ||
== Obtaining latest BSDDB version == | == Obtaining latest BSDDB version == | ||
=== BSDDB core from Sleepycat (Oracle) === | === BSDDB core from Sleepycat (Oracle) === | ||
− | Go to http://www.oracle.com/ | + | Go to http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html |
− | and download latest libdb code, unpack. Read in the downloaded code the file docs/index.html on how to configure and make the code. For Linux | + | and download latest libdb code without encryption (eg Berkeley DB 6.1.23.NC.tar.gz ), unpack. You need to create an Oracle ID for this, but it is OSS software. Read in the downloaded code the file docs/index.html on how to configure and make the code. For Linux: |
+ | |||
+ | cd build_unix | ||
+ | ../dist/configure | ||
+ | make | ||
+ | sudo make install | ||
=== Python BSDDB interface === | === Python BSDDB interface === | ||
− | Next, go to http://pybsddb.sourceforge.net | + | Next, go to [http://www.jcea.es/programacion/pybsddb.htm pybsddb] ([http://pybsddb.sourceforge.net ]). |
− | Download | + | Download the version compatible with the downloaded bsddb version, eg [http://pypi.python.org/pypi/bsddb3/5.1.1 bsddb3 5.1.1] is tested with 4.2 and 5.1. Unpack and go in the created directory. Run <code>python setup.py</code>, this should find your installed bsddb3 returning something like: |
− | Found | + | Found Berkeley DB 5.1 installation. |
− | + | include files in /usr/local/BerkeleyDB.5.1/include | |
− | + | library files in /usr/local/BerkeleyDB.5.1/lib | |
− | + | library name is libdb-5.1 | |
Now run <code>python setup.py build</code> to make the package, and lastly install it with <pre>sudo python setup.py install</pre> which installs bsddb3. | Now run <code>python setup.py build</code> to make the package, and lastly install it with <pre>sudo python setup.py install</pre> which installs bsddb3. | ||
+ | Note: you need libpython2.x-devel to build this, with x your version of python. | ||
+ | |||
+ | As a test, run | ||
+ | |||
+ | python | ||
+ | >>> import bsddb3 | ||
+ | >>> bsddb3.__version__ | ||
+ | '5.1.1' | ||
+ | >>> bsddb3.db.version() | ||
+ | (5, 1, 19) | ||
+ | |||
+ | === Make Gramps use bsddb3=== | ||
+ | In version {{stable_branch}}, you can make Gramps use the bsddb3 package by setting a config key. | ||
+ | For this, open the ini file: | ||
+ | |||
+ | ~/.gramps/gramps{{stable_branch}}/gramps.ini | ||
− | + | and look for the line | |
− | + | ;;use-bsddb3=False | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Change this line into | |
− | = | + | use-bsddb3=True |
− | + | If you now start Gramps, bsddb3 will be used. | |
+ | |||
+ | |||
+ | == See also == | ||
+ | *[[Database Formats]] - Gramps | ||
+ | *[[Database Backends]] - user selectable beginning with the Gramps 5 version | ||
+ | == External Link == | ||
+ | Information on BSDDB (Python "bindings" for Oracle Berkeley DB) | ||
+ | *[http://www.jcea.es/programacion/pybsddb.htm Jesus Cea - Official maintainers Site for BSDDB] | ||
+ | *[http://docs.python.org/library/bsddb.html bsddb — Interface to Berkeley DB library — Python v2.6.1 documentation] | ||
+ | *[http://pybsddb.sourceforge.net/ref/intro/data.html Berkeley DB Reference Guide: An introduction to data management] | ||
+ | |||
+ | [[Category:Developers/General]] |
Latest revision as of 04:25, 23 December 2020
Some people have encountered bugs in Gramps which are due to the database not working well.
Installing the latest version of the BSDDB database tends to solve the problem.
This guide is for version 5.1.6 of Gramps, for earlier versions, you need to manually change python files!
Contents
Why install the latest version ?
Some errors have happened in the past outside of Gramps version 2.2.x, with the BSDDB database format Gramps used. See Bugs: 110 and 814
It can be expected that recompiling BSDDB could solve those problems. However, if BSDDB needs to be recompiled, one might as well install the latest version.
Furthermore, the people of PyBSDDB (the Python "bindings" project for the Oracle Berkeley DB) recommend doing a local compile if the use of BSDDB is critical.
For genealogists needing Gramps, a stable database could certainly be considered a critical need.
Before you begin: BACKUP
Take a backup of your genealogical data before you do this. Remember, you should backup data of Gramps in .gramps format, and keep that somewhere save (GRDB format is NOT a good backup format!).
Obtaining latest BSDDB version
BSDDB core from Sleepycat (Oracle)
Go to http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html and download latest libdb code without encryption (eg Berkeley DB 6.1.23.NC.tar.gz ), unpack. You need to create an Oracle ID for this, but it is OSS software. Read in the downloaded code the file docs/index.html on how to configure and make the code. For Linux:
cd build_unix ../dist/configure make sudo make install
Python BSDDB interface
Next, go to pybsddb ([1]).
Download the version compatible with the downloaded bsddb version, eg bsddb3 5.1.1 is tested with 4.2 and 5.1. Unpack and go in the created directory. Run python setup.py
, this should find your installed bsddb3 returning something like:
Found Berkeley DB 5.1 installation. include files in /usr/local/BerkeleyDB.5.1/include library files in /usr/local/BerkeleyDB.5.1/lib library name is libdb-5.1
Now run python setup.py build
to make the package, and lastly install it with
sudo python setup.py install
which installs bsddb3.
Note: you need libpython2.x-devel to build this, with x your version of python.
As a test, run
python >>> import bsddb3 >>> bsddb3.__version__ '5.1.1' >>> bsddb3.db.version() (5, 1, 19)
Make Gramps use bsddb3
In version 51, you can make Gramps use the bsddb3 package by setting a config key. For this, open the ini file:
~/.gramps/gramps51/gramps.ini
and look for the line
;;use-bsddb3=False
Change this line into
use-bsddb3=True
If you now start Gramps, bsddb3 will be used.
See also
- Database Formats - Gramps
- Database Backends - user selectable beginning with the Gramps 5 version
External Link
Information on BSDDB (Python "bindings" for Oracle Berkeley DB)