Wednesday, March 4, 2015

Building Berkeley DB XML for CentOS systems



Go to this link and download Berkeley DB XML. Version used in this guide is "6.0.17". Once the download complete, unzip the file.

[rozaydin@RO Tutorials]$ ls
dbxml-6.0.17.tar.gz
[rozaydin@RO Tutorials]$ tar -xzf dbxml-6.0.17.tar.gz
[rozaydin@RO Tutorials]$ ls
dbxml-6.0.17  dbxml-6.0.17.tar.gz
[rozaydin@RO Tutorials]$ cd dbxml-6.0.17/
[rozaydin@RO dbxml-6.0.17]$ ls
buildall.sh  db-6.1.19  dbxml  README  xerces-c-src  xqilla
[rozaydin@RO dbxml-6.0.17]$

 DB XML uses  XQilla which is an XQuery and XPath 2 library implemented on top of the  Xerces-C. DB XML requires Berkeley DB as well. So before using it we need to install each of the following dependencies in the following order;
Build and install Berkeley-DB
Build and install Xerces
Build and install XQuilla
Build and install XML-DB
DB XML compilation failed to compile with java 8 switching to java version "1.7.0_72" compilation completed with no errors. Open a terminal switch to root user and set JAVA variables. (PLEASE note you need to use this same terminal for all commands listed below)

[rozaydin@RO dbxml-6.0.17]$ pwd
/home/rozaydin/Desktop/Tutorials/dbxml-6.0.17
[rozaydin@RO dbxml-6.0.17]$ su -
Password:
Last login: Wed Mar  4 12:19:38 EET 2015 on pts/0
[root@RO ~]# export JAVA_HOME=/usr/java/jdk1.7.0_72
[root@RO ~]# export PATH=$JAVA_HOME/bin:$PATH
[root@RO ~]# cd /home/rozaydin/Desktop/Tutorials/dbxml-6.0.17
[root@RO dbxml-6.0.17]#

Now proceed with building Berkeley DB with configure, make, make install use following commands;

[root@RO dbxml-6.0.17]# ls
buildall.sh  db-6.1.19  dbxml  README  xerces-c-src  xqilla
[root@RO dbxml-6.0.17]# cd db-6.1.19/
[root@RO db-6.1.19]# ls
build_android  build_vxworks  build_windows  docs      lang     README  test
build_unix     build_wince    dist           examples  LICENSE  src     util
[root@RO db-6.1.19]# cd build_unix/
[root@RO build_unix]# ../dist/configure --enable-cxx --enable-java
[root@RO build_unix]# make
[root@RO build_unix]# make install

When operation completes this will install Berkeley DB to /usr/local/BerkeleyDB.6.1 directory. Change directory back to where you unzipped XML DB.

[root@RO build_unix]# cd /usr/local/BerkeleyDB.6.1
[root@RO BerkeleyDB.6.1]# ls
bin  docs  include  lib
[root@RO BerkeleyDB.6.1]# cd /home/rozaydin/Desktop/Tutorials/dbxml-6.0.17/
[root@RO dbxml-6.0.17]# pwd
/home/rozaydin/Desktop/Tutorials/dbxml-6.0.17

After this step proceed with building XERCES library.

[root@RO dbxml-6.0.17]# cd xerces-c-src/
[root@RO xerces-c-src]# ls
config        CREDITS  LICENSE      NOTICE    samples  version.incl
config.h.in   doc      m4           projects  scripts  xerces-c.pc.in
configure     INSTALL  Makefile.am  README    src      xerces-c.spec
configure.ac  KEYS     Makefile.in  reconf    tests
[root@RO xerces-c-src]# ./configure
[root@RO xerces-c-src]# make
[root@RO xerces-c-src]# make install

When operation completes this will install XERCES library to /usr/local/bin directory. You should see similar output as below:

test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /bin/sh ../libtool   --mode=install /bin/install -c CreateDOMDocument DOMCount DOMPrint EnumVal MemParse PParse PSVIWriter Redirect SAX2Count SAX2Print SAXCount SAXPrint SCMPrint SEnumVal StdInParse XInclude '/usr/local/bin'
libtool: install: /bin/install -c .libs/CreateDOMDocument /usr/local/bin/CreateDOMDocument
libtool: install: /bin/install -c .libs/DOMCount /usr/local/bin/DOMCount
libtool: install: /bin/install -c .libs/DOMPrint /usr/local/bin/DOMPrint
libtool: install: /bin/install -c .libs/EnumVal /usr/local/bin/EnumVal
libtool: install: /bin/install -c .libs/MemParse /usr/local/bin/MemParse
libtool: install: /bin/install -c .libs/PParse /usr/local/bin/PParse
libtool: install: /bin/install -c .libs/PSVIWriter /usr/local/bin/PSVIWriter
libtool: install: /bin/install -c .libs/Redirect /usr/local/bin/Redirect
libtool: install: /bin/install -c .libs/SAX2Count /usr/local/bin/SAX2Count
libtool: install: /bin/install -c .libs/SAX2Print /usr/local/bin/SAX2Print
libtool: install: /bin/install -c .libs/SAXCount /usr/local/bin/SAXCount
libtool: install: /bin/install -c .libs/SAXPrint /usr/local/bin/SAXPrint
libtool: install: /bin/install -c .libs/SCMPrint /usr/local/bin/SCMPrint
libtool: install: /bin/install -c .libs/SEnumVal /usr/local/bin/SEnumVal
libtool: install: /bin/install -c .libs/StdInParse /usr/local/bin/StdInParse
libtool: install: /bin/install -c .libs/XInclude /usr/local/bin/XInclude

After this step proceed building XQuilla library (PLEASE note that you need to provide the xerces-c-src directory using ABSOLUTE path not doing so will fail the compilation)

[root@RO xqilla]# ./configure --with-xerces=/home/rozaydin/Desktop/Tutorials/dbxml-6.0.17/xerces-c-src
[root@RO xqilla]# make
[root@RO xqilla]# make install

When operation completes this will install XQuilla library to /usr/local/lib directory.
The last step involves building XML DB in dbxml directory type below commands:

[root@RO dbxml]# pwd
/home/rozaydin/Desktop/Tutorials/dbxml-6.0.17/dbxml
[root@RO dbxml]# cd build_unix/
[root@RO build_unix]# ../configure --enable-java --with-berkeleydb=/usr/local/BerkeleyDB.6.1 --with-xqilla=/usr/local/lib
[root@RO build_unix]# make
[root@RO build_unix]# make install

When operation completes this will install XML DB to /usr/local/BerkeleyDBXML.6.0/ directory. Verify the installation by typing below commands

[root@RO build_unix]# cd /usr/local/BerkeleyDBXML.6.0/
[root@RO BerkeleyDBXML.6.0]# ls
bin  include  lib
[root@RO BerkeleyDBXML.6.0]# cd bin
[root@RO bin]# ls
dbxml  dbxml_dump  dbxml_load  dbxml_load_container
[root@RO bin]# dbxml
bash: dbxml: command not found...
[root@RO bin]# ./dbxml
dbxml>

if you see the prompt you are good :)



No comments:

Post a Comment