mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
BitKeeper/deleted/.del-ex_access.wpj~3df6ae8c99bf7c5f: Delete: bdb/build_vxworks/ex_access/ex_access.wpj BitKeeper/deleted/.del-ex_btrec.wpj~a7622f1c6f432dc6: Delete: bdb/build_vxworks/ex_btrec/ex_btrec.wpj BitKeeper/deleted/.del-ex_dbclient.wpj~7345440f3b204cdd: Delete: bdb/build_vxworks/ex_dbclient/ex_dbclient.wpj BitKeeper/deleted/.del-ex_env.wpj~fbe1ab10b04e8b74: Delete: bdb/build_vxworks/ex_env/ex_env.wpj BitKeeper/deleted/.del-ex_mpool.wpj~4479cfd5c45f327d: Delete: bdb/build_vxworks/ex_mpool/ex_mpool.wpj BitKeeper/deleted/.del-ex_tpcb.wpj~f78093006e14bf41: Delete: bdb/build_vxworks/ex_tpcb/ex_tpcb.wpj BitKeeper/deleted/.del-db_buildall.dsp~bd749ff6da11682: Delete: bdb/build_win32/db_buildall.dsp BitKeeper/deleted/.del-cxx_app.cpp~ad8df8e0791011ed: Delete: bdb/cxx/cxx_app.cpp BitKeeper/deleted/.del-cxx_log.cpp~a50ff3118fe06952: Delete: bdb/cxx/cxx_log.cpp BitKeeper/deleted/.del-cxx_table.cpp~ecd751e79b055556: Delete: bdb/cxx/cxx_table.cpp BitKeeper/deleted/.del-namemap.txt~796a3acd3885d8fd: Delete: bdb/cxx/namemap.txt BitKeeper/deleted/.del-Design.fileop~3ca4da68f1727373: Delete: bdb/db/Design.fileop BitKeeper/deleted/.del-db185_int.h~61bee3736e7959ef: Delete: bdb/db185/db185_int.h BitKeeper/deleted/.del-acconfig.h~411e8854d67ad8b5: Delete: bdb/dist/acconfig.h BitKeeper/deleted/.del-mutex.m4~a13383cde18a64e1: Delete: bdb/dist/aclocal/mutex.m4 BitKeeper/deleted/.del-options.m4~b9d0ca637213750a: Delete: bdb/dist/aclocal/options.m4 BitKeeper/deleted/.del-programs.m4~3ce7890b47732b30: Delete: bdb/dist/aclocal/programs.m4 BitKeeper/deleted/.del-tcl.m4~f944e2db93c3b6db: Delete: bdb/dist/aclocal/tcl.m4 BitKeeper/deleted/.del-types.m4~59cae158c9a32cff: Delete: bdb/dist/aclocal/types.m4 BitKeeper/deleted/.del-script~d38f6d3a4f159cb4: Delete: bdb/dist/build/script BitKeeper/deleted/.del-configure.in~ac795a92c8fe049c: Delete: bdb/dist/configure.in BitKeeper/deleted/.del-ltconfig~66bbd007d8024af: Delete: bdb/dist/ltconfig BitKeeper/deleted/.del-rec_ctemp~a28554362534f00a: Delete: bdb/dist/rec_ctemp BitKeeper/deleted/.del-s_tcl~2ffe4326459fcd9f: Delete: bdb/dist/s_tcl BitKeeper/deleted/.del-.IGNORE_ME~d8148b08fa7d5d15: Delete: bdb/dist/template/.IGNORE_ME BitKeeper/deleted/.del-btree.h~179f2aefec1753d: Delete: bdb/include/btree.h BitKeeper/deleted/.del-cxx_int.h~6b649c04766508f8: Delete: bdb/include/cxx_int.h BitKeeper/deleted/.del-db.src~6b433ae615b16a8d: Delete: bdb/include/db.src BitKeeper/deleted/.del-db_185.h~ad8b373d9391d35c: Delete: bdb/include/db_185.h BitKeeper/deleted/.del-db_am.h~a714912b6b75932f: Delete: bdb/include/db_am.h BitKeeper/deleted/.del-db_cxx.h~fcafadf45f5d19e9: Delete: bdb/include/db_cxx.h BitKeeper/deleted/.del-db_dispatch.h~6844f20f7eb46904: Delete: bdb/include/db_dispatch.h BitKeeper/deleted/.del-db_int.src~419a3f48b6a01da7: Delete: bdb/include/db_int.src BitKeeper/deleted/.del-db_join.h~76f9747a42c3399a: Delete: bdb/include/db_join.h BitKeeper/deleted/.del-db_page.h~e302ca3a4db3abdc: Delete: bdb/include/db_page.h BitKeeper/deleted/.del-db_server_int.h~e1d20b6ba3bca1ab: Delete: bdb/include/db_server_int.h BitKeeper/deleted/.del-db_shash.h~5fbf2d696fac90f3: Delete: bdb/include/db_shash.h BitKeeper/deleted/.del-db_swap.h~1e60887550864a59: Delete: bdb/include/db_swap.h BitKeeper/deleted/.del-db_upgrade.h~c644eee73701fc8d: Delete: bdb/include/db_upgrade.h BitKeeper/deleted/.del-db_verify.h~b8d6c297c61f342e: Delete: bdb/include/db_verify.h BitKeeper/deleted/.del-debug.h~dc2b4f2cf27ccebc: Delete: bdb/include/debug.h BitKeeper/deleted/.del-hash.h~2aaa548b28882dfb: Delete: bdb/include/hash.h BitKeeper/deleted/.del-lock.h~a761c1b7de57b77f: Delete: bdb/include/lock.h BitKeeper/deleted/.del-log.h~ff20184238e35e4d: Delete: bdb/include/log.h BitKeeper/deleted/.del-mp.h~7e317597622f3411: Delete: bdb/include/mp.h BitKeeper/deleted/.del-mutex.h~d3ae7a2977a68137: Delete: bdb/include/mutex.h BitKeeper/deleted/.del-os.h~91867cc8757cd0e3: Delete: bdb/include/os.h BitKeeper/deleted/.del-os_jump.h~e1b939fa5151d4be: Delete: bdb/include/os_jump.h BitKeeper/deleted/.del-qam.h~6fad0c1b5723d597: Delete: bdb/include/qam.h BitKeeper/deleted/.del-queue.h~4c72c0826c123d5: Delete: bdb/include/queue.h BitKeeper/deleted/.del-region.h~513fe04d977ca0fc: Delete: bdb/include/region.h BitKeeper/deleted/.del-shqueue.h~525fc3e6c2025c36: Delete: bdb/include/shqueue.h BitKeeper/deleted/.del-tcl_db.h~c536fd61a844f23f: Delete: bdb/include/tcl_db.h BitKeeper/deleted/.del-txn.h~c8d94b221ec147e4: Delete: bdb/include/txn.h BitKeeper/deleted/.del-xa.h~ecc466493aae9d9a: Delete: bdb/include/xa.h BitKeeper/deleted/.del-DbRecoveryInit.java~756b52601a0b9023: Delete: bdb/java/src/com/sleepycat/db/DbRecoveryInit.java BitKeeper/deleted/.del-DbTxnRecover.java~74607cba7ab89d6d: Delete: bdb/java/src/com/sleepycat/db/DbTxnRecover.java BitKeeper/deleted/.del-lock_conflict.c~fc5e0f14cf597a2b: Delete: bdb/lock/lock_conflict.c BitKeeper/deleted/.del-log.src~53ac9e7b5cb023f2: Delete: bdb/log/log.src BitKeeper/deleted/.del-log_findckp.c~24287f008916e81f: Delete: bdb/log/log_findckp.c BitKeeper/deleted/.del-log_rec.c~d51711f2cac09297: Delete: bdb/log/log_rec.c BitKeeper/deleted/.del-log_register.c~b40bb4efac75ca15: Delete: bdb/log/log_register.c BitKeeper/deleted/.del-Design~b3d0f179f2767b: Delete: bdb/mp/Design BitKeeper/deleted/.del-os_finit.c~95dbefc6fe79b26c: Delete: bdb/os/os_finit.c BitKeeper/deleted/.del-os_abs.c~df95d1e7db81924: Delete: bdb/os_vxworks/os_abs.c BitKeeper/deleted/.del-os_finit.c~803b484bdb9d0122: Delete: bdb/os_vxworks/os_finit.c BitKeeper/deleted/.del-os_map.c~3a6d7926398b76d3: Delete: bdb/os_vxworks/os_map.c BitKeeper/deleted/.del-os_finit.c~19a227c6d3c78ad: Delete: bdb/os_win32/os_finit.c BitKeeper/deleted/.del-log-corruption.patch~1cf2ecc7c6408d5d: Delete: bdb/patches/log-corruption.patch BitKeeper/deleted/.del-Btree.pm~af6d0c5eaed4a98e: Delete: bdb/perl.BerkeleyDB/BerkeleyDB/Btree.pm BitKeeper/deleted/.del-BerkeleyDB.pm~7244036d4482643: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pm BitKeeper/deleted/.del-BerkeleyDB.pod~e7b18fd6132448e3: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pod BitKeeper/deleted/.del-Hash.pm~10292a26c06a5c95: Delete: bdb/perl.BerkeleyDB/BerkeleyDB/Hash.pm BitKeeper/deleted/.del-BerkeleyDB.pod.P~79f76a1495eda203: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.pod.P BitKeeper/deleted/.del-BerkeleyDB.xs~80c99afbd98e392c: Delete: bdb/perl.BerkeleyDB/BerkeleyDB.xs BitKeeper/deleted/.del-Changes~729c1891efa60de9: Delete: bdb/perl.BerkeleyDB/Changes BitKeeper/deleted/.del-MANIFEST~63a1e34aecf157a0: Delete: bdb/perl.BerkeleyDB/MANIFEST BitKeeper/deleted/.del-Makefile.PL~c68797707d8df87a: Delete: bdb/perl.BerkeleyDB/Makefile.PL BitKeeper/deleted/.del-README~5f2f579b1a241407: Delete: bdb/perl.BerkeleyDB/README BitKeeper/deleted/.del-Todo~dca3c66c193adda9: Delete: bdb/perl.BerkeleyDB/Todo BitKeeper/deleted/.del-config.in~ae81681e450e0999: Delete: bdb/perl.BerkeleyDB/config.in BitKeeper/deleted/.del-dbinfo~28ad67d83be4f68e: Delete: bdb/perl.BerkeleyDB/dbinfo BitKeeper/deleted/.del-mkconsts~543ab60669c7a04e: Delete: bdb/perl.BerkeleyDB/mkconsts BitKeeper/deleted/.del-mkpod~182c0ca54e439afb: Delete: bdb/perl.BerkeleyDB/mkpod BitKeeper/deleted/.del-5.004~e008cb5a48805543: Delete: bdb/perl.BerkeleyDB/patches/5.004 BitKeeper/deleted/.del-irix_6_5.pl~61662bb08afcdec8: Delete: bdb/perl.BerkeleyDB/hints/irix_6_5.pl BitKeeper/deleted/.del-solaris.pl~6771e7182394e152: Delete: bdb/perl.BerkeleyDB/hints/solaris.pl BitKeeper/deleted/.del-typemap~783b8f5295b05f3d: Delete: bdb/perl.BerkeleyDB/typemap BitKeeper/deleted/.del-5.004_01~6081ce2fff7b0bc: Delete: bdb/perl.BerkeleyDB/patches/5.004_01 BitKeeper/deleted/.del-5.004_02~87214eac35ad9e6: Delete: bdb/perl.BerkeleyDB/patches/5.004_02 BitKeeper/deleted/.del-5.004_03~9a672becec7cb40f: Delete: bdb/perl.BerkeleyDB/patches/5.004_03 BitKeeper/deleted/.del-5.004_04~e326cb51af09d154: Delete: bdb/perl.BerkeleyDB/patches/5.004_04 BitKeeper/deleted/.del-5.004_05~7ab457a1e41a92fe: Delete: bdb/perl.BerkeleyDB/patches/5.004_05 BitKeeper/deleted/.del-5.005~f9e2d59b5964cd4b: Delete: bdb/perl.BerkeleyDB/patches/5.005 BitKeeper/deleted/.del-5.005_01~3eb9fb7b5842ea8e: Delete: bdb/perl.BerkeleyDB/patches/5.005_01 BitKeeper/deleted/.del-5.005_02~67477ce0bef717cb: Delete: bdb/perl.BerkeleyDB/patches/5.005_02 BitKeeper/deleted/.del-5.005_03~c4c29a1fb21e290a: Delete: bdb/perl.BerkeleyDB/patches/5.005_03 BitKeeper/deleted/.del-5.6.0~e1fb9897d124ee22: Delete: bdb/perl.BerkeleyDB/patches/5.6.0 BitKeeper/deleted/.del-btree.t~e4a1a3c675ddc406: Delete: bdb/perl.BerkeleyDB/t/btree.t BitKeeper/deleted/.del-db-3.0.t~d2c60991d84558f2: Delete: bdb/perl.BerkeleyDB/t/db-3.0.t BitKeeper/deleted/.del-db-3.1.t~6ee88cd13f55e018: Delete: bdb/perl.BerkeleyDB/t/db-3.1.t BitKeeper/deleted/.del-db-3.2.t~f73b6461f98fd1cf: Delete: bdb/perl.BerkeleyDB/t/db-3.2.t BitKeeper/deleted/.del-destroy.t~cc6a2ae1980a2ecd: Delete: bdb/perl.BerkeleyDB/t/destroy.t BitKeeper/deleted/.del-env.t~a8604a4499c4bd07: Delete: bdb/perl.BerkeleyDB/t/env.t BitKeeper/deleted/.del-examples.t~2571b77c3cc75574: Delete: bdb/perl.BerkeleyDB/t/examples.t BitKeeper/deleted/.del-examples.t.T~8228bdd75ac78b88: Delete: bdb/perl.BerkeleyDB/t/examples.t.T BitKeeper/deleted/.del-examples3.t.T~66a186897a87026d: Delete: bdb/perl.BerkeleyDB/t/examples3.t.T BitKeeper/deleted/.del-examples3.t~fe3822ba2f2d7f83: Delete: bdb/perl.BerkeleyDB/t/examples3.t BitKeeper/deleted/.del-filter.t~f87b045c1b708637: Delete: bdb/perl.BerkeleyDB/t/filter.t BitKeeper/deleted/.del-hash.t~616bfb4d644de3a3: Delete: bdb/perl.BerkeleyDB/t/hash.t BitKeeper/deleted/.del-join.t~29fc39f74a83ca22: Delete: bdb/perl.BerkeleyDB/t/join.t BitKeeper/deleted/.del-mldbm.t~31f5015341eea040: Delete: bdb/perl.BerkeleyDB/t/mldbm.t BitKeeper/deleted/.del-queue.t~8f338034ce44a641: Delete: bdb/perl.BerkeleyDB/t/queue.t BitKeeper/deleted/.del-recno.t~d4ddbd3743add63e: Delete: bdb/perl.BerkeleyDB/t/recno.t BitKeeper/deleted/.del-strict.t~6885cdd2ea71ca2d: Delete: bdb/perl.BerkeleyDB/t/strict.t BitKeeper/deleted/.del-subdb.t~aab62a5d5864c603: Delete: bdb/perl.BerkeleyDB/t/subdb.t BitKeeper/deleted/.del-txn.t~65033b8558ae1216: Delete: bdb/perl.BerkeleyDB/t/txn.t BitKeeper/deleted/.del-unknown.t~f3710458682665e1: Delete: bdb/perl.BerkeleyDB/t/unknown.t BitKeeper/deleted/.del-Changes~436f74a5c414c65b: Delete: bdb/perl.DB_File/Changes BitKeeper/deleted/.del-DB_File.pm~ae0951c6c7665a82: Delete: bdb/perl.DB_File/DB_File.pm BitKeeper/deleted/.del-DB_File.xs~89e49a0b5556f1d8: Delete: bdb/perl.DB_File/DB_File.xs BitKeeper/deleted/.del-DB_File_BS~290fad5dbbb87069: Delete: bdb/perl.DB_File/DB_File_BS BitKeeper/deleted/.del-MANIFEST~90ee581572bdd4ac: Delete: bdb/perl.DB_File/MANIFEST BitKeeper/deleted/.del-Makefile.PL~ac0567bb5a377e38: Delete: bdb/perl.DB_File/Makefile.PL BitKeeper/deleted/.del-README~77e924a5a9bae6b3: Delete: bdb/perl.DB_File/README BitKeeper/deleted/.del-config.in~ab4c2792b86a810b: Delete: bdb/perl.DB_File/config.in BitKeeper/deleted/.del-dbinfo~461c43b30fab2cb: Delete: bdb/perl.DB_File/dbinfo BitKeeper/deleted/.del-dynixptx.pl~50dcddfae25d17e9: Delete: bdb/perl.DB_File/hints/dynixptx.pl BitKeeper/deleted/.del-typemap~55cffb3288a9e587: Delete: bdb/perl.DB_File/typemap BitKeeper/deleted/.del-version.c~a4df0e646f8b3975: Delete: bdb/perl.DB_File/version.c BitKeeper/deleted/.del-5.004_01~d6830d0082702af7: Delete: bdb/perl.DB_File/patches/5.004_01 BitKeeper/deleted/.del-5.004_02~78b082dc80c91031: Delete: bdb/perl.DB_File/patches/5.004_02 BitKeeper/deleted/.del-5.004~4411ec2e3c9e008b: Delete: bdb/perl.DB_File/patches/5.004 BitKeeper/deleted/.del-sco.pl~1e795fe14fe4dcfe: Delete: bdb/perl.DB_File/hints/sco.pl BitKeeper/deleted/.del-5.004_03~33f274648b160d95: Delete: bdb/perl.DB_File/patches/5.004_03 BitKeeper/deleted/.del-5.004_04~8f3d1b3cf18bb20a: Delete: bdb/perl.DB_File/patches/5.004_04 BitKeeper/deleted/.del-5.004_05~9c0f02e7331e142: Delete: bdb/perl.DB_File/patches/5.004_05 BitKeeper/deleted/.del-5.005~c2108cb2e3c8d951: Delete: bdb/perl.DB_File/patches/5.005 BitKeeper/deleted/.del-5.005_01~3b45e9673afc4cfa: Delete: bdb/perl.DB_File/patches/5.005_01 BitKeeper/deleted/.del-5.005_02~9fe5766bb02a4522: Delete: bdb/perl.DB_File/patches/5.005_02 BitKeeper/deleted/.del-5.005_03~ffa1c38c19ae72ea: Delete: bdb/perl.DB_File/patches/5.005_03 BitKeeper/deleted/.del-5.6.0~373be3a5ce47be85: Delete: bdb/perl.DB_File/patches/5.6.0 BitKeeper/deleted/.del-db-btree.t~3231595a1c241eb3: Delete: bdb/perl.DB_File/t/db-btree.t BitKeeper/deleted/.del-db-hash.t~7c4ad0c795c7fad2: Delete: bdb/perl.DB_File/t/db-hash.t BitKeeper/deleted/.del-db-recno.t~6c2d3d80b9ba4a50: Delete: bdb/perl.DB_File/t/db-recno.t BitKeeper/deleted/.del-db_server.sed~cdb00ebcd48a64e2: Delete: bdb/rpc_server/db_server.sed BitKeeper/deleted/.del-db_server_proc.c~d46c8f409c3747f4: Delete: bdb/rpc_server/db_server_proc.c BitKeeper/deleted/.del-db_server_svc.sed~3f5e59f334fa4607: Delete: bdb/rpc_server/db_server_svc.sed BitKeeper/deleted/.del-db_server_util.c~a809f3a4629acda: Delete: bdb/rpc_server/db_server_util.c BitKeeper/deleted/.del-log.tcl~ff1b41f1355b97d7: Delete: bdb/test/log.tcl BitKeeper/deleted/.del-mpool.tcl~b0df4dc1b04db26c: Delete: bdb/test/mpool.tcl BitKeeper/deleted/.del-mutex.tcl~52fd5c73a150565: Delete: bdb/test/mutex.tcl BitKeeper/deleted/.del-txn.tcl~c4ff071550b5446e: Delete: bdb/test/txn.tcl BitKeeper/deleted/.del-README~e800a12a5392010a: Delete: bdb/test/upgrade/README BitKeeper/deleted/.del-pack-2.6.6.pl~89d5076d758d3e98: Delete: bdb/test/upgrade/generate-2.X/pack-2.6.6.pl BitKeeper/deleted/.del-test-2.6.patch~4a52dc83d447547b: Delete: bdb/test/upgrade/generate-2.X/test-2.6.patch
485 lines
18 KiB
Plaintext
485 lines
18 KiB
Plaintext
BerkeleyDB
|
|
|
|
Version 0.20
|
|
|
|
2nd Sept 2002
|
|
|
|
Copyright (c) 1997-2002 Paul Marquess. All rights reserved. This
|
|
program is free software; you can redistribute it and/or modify
|
|
it under the same terms as Perl itself.
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
BerkeleyDB is a module which allows Perl programs to make use of the
|
|
facilities provided by Berkeley DB version 2 or greater. (Note: if
|
|
you want to use version 1 of Berkeley DB with Perl you need the DB_File
|
|
module).
|
|
|
|
Berkeley DB is a C library which provides a consistent interface to a
|
|
number of database formats. BerkeleyDB provides an interface to all
|
|
four of the database types (hash, btree, queue and recno) currently
|
|
supported by Berkeley DB.
|
|
|
|
For further details see the documentation in the file BerkeleyDB.pod.
|
|
|
|
PREREQUISITES
|
|
-------------
|
|
|
|
Before you can build BerkeleyDB you need to have the following
|
|
installed on your system:
|
|
|
|
* Perl 5.004_04 or greater.
|
|
|
|
* Berkeley DB Version 2.6.4 or greater
|
|
|
|
The official web site for Berkeley DB is http://www.sleepycat.com
|
|
|
|
The latest version of Berkeley DB is always available there. It
|
|
is recommended that you use the most recent version available at
|
|
the Sleepycat site.
|
|
|
|
The one exception to this advice is where you want to use BerkeleyDB
|
|
to access database files created by a third-party application,
|
|
like Sendmail. In these cases you must build BerkeleyDB with a
|
|
compatible version of Berkeley DB.
|
|
|
|
|
|
BUILDING THE MODULE
|
|
-------------------
|
|
|
|
Assuming you have met all the prerequisites, building the module should
|
|
be relatively straightforward.
|
|
|
|
Step 1 : If you are running Solaris 2.5, 2.7 or HP-UX 10 read either
|
|
the Solaris Notes or HP-UX Notes sections below.
|
|
If you are running Linux please read the Linux Notes section
|
|
before proceeding.
|
|
|
|
|
|
Step 2 : Edit the file config.in to suit you local installation.
|
|
Instructions are given in the file.
|
|
|
|
Step 3 : Build and test the module using this sequence of commands:
|
|
|
|
perl Makefile.PL
|
|
make
|
|
make test
|
|
|
|
INSTALLATION
|
|
------------
|
|
|
|
make install
|
|
|
|
TROUBLESHOOTING
|
|
===============
|
|
|
|
Here are some of the problems that people encounter when building BerkeleyDB.
|
|
|
|
Missing db.h or libdb.a
|
|
-----------------------
|
|
|
|
If you get an error like this:
|
|
|
|
cc -c -I./libraries/ -Dbool=char -DHAS_BOOL -I/usr/local/include -O2
|
|
-DVERSION=\"0.07\" -DXS_VERSION=\"0.07\" -fpic
|
|
-I/usr/local/lib/perl5/5.00503/i586-linux/CORE BerkeleyDB.c
|
|
BerkeleyDB.xs:52: db.h: No such file or directory
|
|
|
|
or this:
|
|
|
|
cc -c -I./libraries/2.7.5 -Dbool=char -DHAS_BOOL -I/usr/local/include -O2
|
|
-DVERSION=\"0.07\" -DXS_VERSION=\"0.07\" -fpic
|
|
-I/usr/local/lib/perl5/5.00503/i586-linux/CORE BerkeleyDB.c
|
|
LD_RUN_PATH="/lib" cc -o blib/arch/auto/BerkeleyDB/BerkeleyDB.so -shared
|
|
-L/usr/local/lib BerkeleyDB.o
|
|
-L/home/paul/perl/ext/BerkDB/BerkeleyDB/libraries -ldb
|
|
ld: cannot open -ldb: No such file or directory
|
|
|
|
This symptom can imply:
|
|
|
|
1. You don't have Berkeley DB installed on your system at all.
|
|
Solution: get & install Berkeley DB.
|
|
|
|
2. You do have Berkeley DB installed, but it isn't in a standard place.
|
|
Solution: Edit config.in and set the LIB and INCLUDE variables to point
|
|
to the directories where libdb.a and db.h are installed.
|
|
|
|
#error db.h is not for Berkeley DB at all.
|
|
------------------------------------------
|
|
|
|
If you get the error above when building this module it means that there
|
|
is a file called "db.h" on your system that isn't the one that comes
|
|
with Berkeley DB.
|
|
|
|
Options:
|
|
|
|
1. You don't have Berkeley DB installed on your system at all.
|
|
Solution: get & install Berkeley DB.
|
|
|
|
2. Edit config.in and make sure the INCLUDE variable points to the
|
|
directory where the Berkeley DB file db.h is installed.
|
|
|
|
3. If option 2 doesn't work, try tempoarily renaming the db.h file
|
|
that is causing the error.
|
|
|
|
#error db.h is for Berkeley DB 1.x - need at least Berkeley DB 2.6.4
|
|
--------------------------------------------------------------------
|
|
|
|
The error above will occur if there is a copy of the Berkeley DB 1.x
|
|
file db.h on your system.
|
|
|
|
This error will happen when
|
|
|
|
1. you only have Berkeley DB version 1 on your system.
|
|
Solution: get & install a newer version of Berkeley DB.
|
|
|
|
2. you have both version 1 and a later version of Berkeley DB
|
|
installed on your system. When building BerkeleyDB it attempts to
|
|
use the db.h for Berkeley DB version 1.
|
|
Solution: Edit config.in and set the LIB and INCLUDE variables
|
|
to point to the directories where libdb.a and db.h are
|
|
installed.
|
|
|
|
|
|
#error db.h is for Berkeley DB 2.0-2.5 - need at least Berkeley DB 2.6.4
|
|
------------------------------------------------------------------------
|
|
|
|
The error above will occur if there is a copy of the the file db.h for
|
|
Berkeley DB 2.0 to 2.5 on your system.
|
|
|
|
This symptom can imply:
|
|
|
|
1. You don't have a new enough version of Berkeley DB.
|
|
Solution: get & install a newer version of Berkeley DB.
|
|
|
|
2. You have the correct version of Berkeley DB installed, but it isn't
|
|
in a standard place.
|
|
Solution: Edit config.in and set the LIB and INCLUDE variables
|
|
to point to the directories where libdb.a and db.h are
|
|
installed.
|
|
|
|
Undefined Symbol: txn_stat
|
|
--------------------------
|
|
|
|
BerkeleyDB seems to have built correctly, but you get an error like this
|
|
when you run the test harness:
|
|
|
|
$ make test
|
|
PERL_DL_NONLAZY=1 /home/paul/perl/install/bin/perl5.00503
|
|
-Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.00503/i586-linux
|
|
-I/usr/local/lib/perl5/5.00503 -e 'use Test::Harness qw(&runtests $verbose);
|
|
$verbose=0; runtests @ARGV;' t/*.t
|
|
t/btree.............Can't load 'blib/arch/auto/BerkeleyDB/BerkeleyDB.so' for
|
|
module BerkeleyDB: blib/arch/auto/BerkeleyDB/BerkeleyDB.so:
|
|
undefined symbol: txn_stat
|
|
at /usr/local/lib/perl5/5.00503/i586-linux/DynaLoader.pm line 169.
|
|
...
|
|
|
|
This error usually happens when you have both version 1 and a newer version
|
|
of Berkeley DB installed on your system. BerkeleyDB attempts
|
|
to build using the db.h for Berkeley DB version 2/3/4 and the version 1
|
|
library. Unfortunately the two versions aren't compatible with each
|
|
other. BerkeleyDB can only be built with Berkeley DB version 2, 3 or 4.
|
|
|
|
Solution: Setting the LIB & INCLUDE variables in config.in to point to the
|
|
correct directories can sometimes be enough to fix this
|
|
problem. If that doesn't work the easiest way to fix the
|
|
problem is to either delete or temporarily rename the copies
|
|
of db.h and libdb.a that you don't want BerkeleyDB to use.
|
|
|
|
Undefined Symbol: db_appinit
|
|
----------------------------
|
|
|
|
BerkeleyDB seems to have built correctly, but you get an error like this
|
|
when you run the test harness:
|
|
|
|
$ make test
|
|
PERL_DL_NONLAZY=1 /home/paul/perl/install/bin/perl5.00561 -Iblib/arch
|
|
-Iblib/lib -I/home/paul/perl/install/5.005_61/lib/5.00561/i586-linux
|
|
-I/home/paul/perl/install/5.005_61/lib/5.00561 -e 'use Test::Harness
|
|
qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
|
|
t/btree.............Can't load 'blib/arch/auto/BerkeleyDB/BerkeleyDB.so' for
|
|
module BerkeleyDB: blib/arch/auto/BerkeleyDB/BerkeleyDB.so:
|
|
undefined symbol: db_appinit
|
|
at /home/paul/perl/install/5.005_61/lib/5.00561/i586-linux/DynaLoader.pm
|
|
...
|
|
|
|
|
|
This error usually happens when you have both version 2 and version
|
|
3 of Berkeley DB installed on your system and BerkeleyDB attempts
|
|
to build using the db.h for Berkeley DB version 2 and the version 3
|
|
library. Unfortunately the two versions aren't compatible with each
|
|
other.
|
|
|
|
Solution: Setting the LIB & INCLUDE variables in config.in to point to the
|
|
correct directories can sometimes be enough to fix this
|
|
problem. If that doesn't work the easiest way to fix the
|
|
problem is to either delete or temporarily rename the copies
|
|
of db.h and libdb.a that you don't want BerkeleyDB to use.
|
|
|
|
Undefined Symbol: db_create
|
|
---------------------------
|
|
|
|
BerkeleyDB seems to have built correctly, but you get an error like this
|
|
when you run the test harness:
|
|
|
|
$ make test
|
|
PERL_DL_NONLAZY=1 /home/paul/perl/install/bin/perl5.00561 -Iblib/arch
|
|
-Iblib/lib -I/home/paul/perl/install/5.005_61/lib/5.00561/i586-linux
|
|
-I/home/paul/perl/install/5.005_61/lib/5.00561 -e 'use Test::Harness
|
|
qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
|
|
t/btree.............Can't load 'blib/arch/auto/BerkeleyDB/BerkeleyDB.so' for
|
|
module BerkeleyDB: blib/arch/auto/BerkeleyDB/BerkeleyDB.so:
|
|
undefined symbol: db_create
|
|
at /home/paul/perl/install/5.005_61/lib/5.00561/i586-linux/DynaLoader.pm
|
|
...
|
|
|
|
This error usually happens when you have both version 2 and version
|
|
3 of Berkeley DB installed on your system and BerkeleyDB attempts
|
|
to build using the db.h for Berkeley DB version 3 and the version 2
|
|
library. Unfortunately the two versions aren't compatible with each
|
|
other.
|
|
|
|
Solution: Setting the LIB & INCLUDE variables in config.in to point to the
|
|
correct directories can sometimes be enough to fix this
|
|
problem. If that doesn't work the easiest way to fix the
|
|
problem is to either delete or temporarily rename the copies
|
|
of db.h and libdb.a that you don't want BerkeleyDB to use.
|
|
|
|
|
|
Incompatible versions of db.h and libdb
|
|
---------------------------------------
|
|
|
|
BerkeleyDB seems to have built correctly, but you get an error like this
|
|
when you run the test harness:
|
|
|
|
$ make test
|
|
PERL_DL_NONLAZY=1 /home/paul/perl/install/bin/perl5.00503
|
|
-Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.00503/i586-linux
|
|
-I/usr/local/lib/perl5/5.00503 -e 'use Test::Harness qw(&runtests $verbose);
|
|
$verbose=0; runtests @ARGV;' t/*.t
|
|
t/btree.............
|
|
BerkeleyDB needs compatible versions of libdb & db.h
|
|
you have db.h version 2.6.4 and libdb version 2.7.5
|
|
BEGIN failed--compilation aborted at t/btree.t line 25.
|
|
dubious
|
|
Test returned status 255 (wstat 65280, 0xff00)
|
|
...
|
|
|
|
Another variation on the theme of having two versions of Berkeley DB on
|
|
your system.
|
|
|
|
Solution: Setting the LIB & INCLUDE variables in config.in to point to the
|
|
correct directories can sometimes be enough to fix this
|
|
problem. If that doesn't work the easiest way to fix the
|
|
problem is to either delete or temporarily rename the copies
|
|
of db.h and libdb.a that you don't want BerkeleyDB to use.
|
|
If you are running Linux, please read the Linux Notes section below.
|
|
|
|
|
|
Linux Notes
|
|
-----------
|
|
|
|
Newer versions of Linux (e.g. RedHat 6, SuSe 6) ship with a C library
|
|
that has version 2.x of Berkeley DB linked into it. This makes it
|
|
difficult to build this module with anything other than the version of
|
|
Berkeley DB that shipped with your Linux release. If you do try to use
|
|
a different version of Berkeley DB you will most likely get the error
|
|
described in the "Incompatible versions of db.h and libdb" section of
|
|
this file.
|
|
|
|
To make matters worse, prior to Perl 5.6.1, the perl binary itself
|
|
*always* included the Berkeley DB library.
|
|
|
|
If you want to use a newer version of Berkeley DB with this module, the
|
|
easiest solution is to use Perl 5.6.1 (or better) and Berkeley DB 3.x
|
|
(or better).
|
|
|
|
There are two approaches you can use to get older versions of Perl to
|
|
work with specific versions of Berkeley DB. Both have their advantages
|
|
and disadvantages.
|
|
|
|
The first approach will only work when you want to build a version of
|
|
Perl older than 5.6.1 along with Berkeley DB 3.x. If you want to use
|
|
Berkeley DB 2.x, you must use the next approach. This approach involves
|
|
rebuilding your existing version of Perl after applying an unofficial
|
|
patch. The "patches" directory in the this module's source distribution
|
|
contains a number of patch files. There is one patch file for every
|
|
stable version of Perl since 5.004. Apply the appropriate patch to your
|
|
Perl source tree before re-building and installing Perl from scratch.
|
|
For example, assuming you are in the top-level source directory for
|
|
Perl 5.6.0, the command below will apply the necessary patch. Remember
|
|
to replace the path shown below with one that points to this module's
|
|
patches directory.
|
|
|
|
patch -p1 -N </path/to/BerkeleyDB/patches/5.6.0
|
|
|
|
Now rebuild & install perl. You should now have a perl binary that can
|
|
be used to build this module. Follow the instructions in "BUILDING THE
|
|
MODULE", remembering to set the INCLUDE and LIB variables in config.in.
|
|
|
|
|
|
The second approach will work with Berkeley DB 2.x or better.
|
|
Start by building Berkeley DB as a shared library. This is from
|
|
the Berkeley DB build instructions:
|
|
|
|
Building Shared Libraries for the GNU GCC compiler
|
|
|
|
If you're using gcc and there's no better shared library example for
|
|
your architecture, the following shared library build procedure will
|
|
probably work.
|
|
|
|
Add the -fpic option to the CFLAGS value in the Makefile.
|
|
|
|
Rebuild all of your .o files. This will create a Berkeley DB library
|
|
that contains .o files with PIC code. To build the shared library,
|
|
then take the following steps in the library build directory:
|
|
|
|
% mkdir tmp
|
|
% cd tmp
|
|
% ar xv ../libdb.a
|
|
% gcc -shared -o libdb.so *.o
|
|
% mv libdb.so ..
|
|
% cd ..
|
|
% rm -rf tmp
|
|
|
|
Note, you may have to change the gcc line depending on the
|
|
requirements of your system.
|
|
|
|
The file libdb.so is your shared library
|
|
|
|
Once you have built libdb.so, you will need to store it somewhere safe.
|
|
|
|
cp libdb.so /usr/local/BerkeleyDB/lib
|
|
|
|
If you now set the LD_PRELOAD environment variable to point to this
|
|
shared library, Perl will use it instead of the version of Berkeley DB
|
|
that shipped with your Linux distribution.
|
|
|
|
export LD_PRELOAD=/usr/local/BerkeleyDB/lib/libdb.so
|
|
|
|
Finally follow the instructions in "BUILDING THE MODULE" to build,
|
|
test and install this module. Don't forget to set the INCLUDE and LIB
|
|
variables in config.in.
|
|
|
|
Remember, you will need to have the LD_PRELOAD variable set anytime you
|
|
want to use Perl with Berkeley DB. Also note that if you have LD_PRELOAD
|
|
permanently set it will affect ALL commands you execute. This may be a
|
|
problem if you run any commands that access a database created by the
|
|
version of Berkeley DB that shipped with your Linux distribution.
|
|
|
|
|
|
|
|
Solaris 2.5 Notes
|
|
-----------------
|
|
|
|
If you are running Solaris 2.5, and you get this error when you run the
|
|
BerkeleyDB test harness:
|
|
|
|
libc internal error: _rmutex_unlock: rmutex not held.
|
|
|
|
you probably need to install a Sun patch. It has been reported that
|
|
Sun patch 103187-25 (or later revisions) fixes this problem.
|
|
|
|
To find out if you have the patch installed, the command "showrev -p"
|
|
will display the patches that are currently installed on your system.
|
|
|
|
Solaris 2.7 Notes
|
|
-----------------
|
|
|
|
If you are running Solaris 2.7 and all the tests in the test harness
|
|
generate a core dump, try applying Sun patch 106980-09 (or better).
|
|
|
|
To find out if you have the patch installed, the command "showrev -p"
|
|
will display the patches that are currently installed on your system.
|
|
|
|
|
|
HP-UX Notes
|
|
-----------
|
|
|
|
Some people running HP-UX 10 have reported getting an error like this
|
|
when building this module with the native HP-UX compiler.
|
|
|
|
ld: (Warning) At least one PA 2.0 object file (BerkeleyDB.o) was detected.
|
|
The linked output may not run on a PA 1.x system.
|
|
ld: Invalid loader fixup for symbol "$000000A5".
|
|
|
|
If this is the case for you, Berkeley DB needs to be recompiled with
|
|
the +z or +Z option and the resulting library placed in a .sl file. The
|
|
following steps should do the trick:
|
|
|
|
1: Configure the Berkeley DB distribution with the +z or +Z C compiler
|
|
flag:
|
|
|
|
env "CFLAGS=+z" ../dist/configure ...
|
|
|
|
2: Edit the Berkeley DB Makefile and change:
|
|
|
|
"libdb= libdb.a" to "libdb= libdb.sl".
|
|
|
|
3: Build and install the Berkeley DB distribution as usual.
|
|
|
|
|
|
|
|
FEEDBACK
|
|
--------
|
|
|
|
How to report a problem with BerkeleyDB.
|
|
|
|
To help me help you, I need of the following information:
|
|
|
|
1. The version of Perl and the operating system name and version you
|
|
are running. The complete output from running "perl -V" will tell
|
|
me all I need to know.
|
|
If your perl does not understand the "-V" option is too old.
|
|
BerkeleyDB needs Perl version 5.004_04 or better.
|
|
|
|
2. The version of BerkeleyDB you have. If you have successfully
|
|
installed BerkeleyDB, this one-liner will tell you:
|
|
|
|
perl -MBerkeleyDB -e 'print qq{BerkeleyDB ver $BerkeleyDB::VERSION\n}'
|
|
|
|
If you haven't installed BerkeleyDB then search BerkeleyDB.pm for a
|
|
line like this:
|
|
|
|
$VERSION = "1.20" ;
|
|
|
|
3. The version of Berkeley DB you have installed. If you have
|
|
successfully installed BerkeleyDB, this one-liner will tell you:
|
|
|
|
perl -MBerkeleyDB -e 'print BerkeleyDB::DB_VERSION_STRING.qq{\n}'
|
|
|
|
If you haven't installed BerkeleyDB then search db.h for a line
|
|
like this:
|
|
|
|
#define DB_VERSION_STRING
|
|
|
|
4. If you are having problems building BerkeleyDB, send me a complete
|
|
log of what happened.
|
|
|
|
5. Now the difficult one. If you think you have found a bug in
|
|
BerkeleyDB and you want me to fix it, you will *greatly* enhance
|
|
the chances of me being able to track it down by sending me a small
|
|
self-contained Perl script that illustrates the problem you are
|
|
encountering. Include a summary of what you think the problem is
|
|
and a log of what happens when you run the script, in case I can't
|
|
reproduce your problem on my system. If possible, don't have the
|
|
script dependent on an existing 20Meg database. If the script you
|
|
send me can create the database itself then that is preferred.
|
|
|
|
I realise that in some cases this is easier said than done, so if
|
|
you can only reproduce the problem in your existing script, then
|
|
you can post me that if you want. Just don't expect me to find your
|
|
problem in a hurry, or at all. :-)
|
|
|
|
|
|
CHANGES
|
|
-------
|
|
|
|
See the Changes file.
|
|
|
|
Paul Marquess <Paul.Marquess@btinternet.com>
|
|
|