DB XML auf FreeBSD 7.0 oder 7.1 installieren 1

Erstellt von René Keller am 26. Februar 2009

Da es kein leichtes Unterfangen war, Oracle Berkeley DB XML auf FreeBSD 7.0/7.1 (amd64) mit Java-Binding zu installieren, hier die Beschreibung, wie es geht:

1. Sourcen herunterladen und entpacken

http://www.oracle.com/technology/software/products/berkeley-db/xml/index.html

2. jdk, linux-expat und gmake installieren:

cd /usr/ports/textproc/linux-expat/ && make install clean
cd /usr/ports/devel/gmake/ && make install clean
cd /usr/ports/java/jdk16/ && make install clean

(Java-Sourcen müssen, wie im Port beschrieben, von java.sun.com heruntergelden werden.)

3. Datei /etc/libmap.conf anpassen oder ändern:

echo "libc_r.so.7             libpthread.so # Everything that uses 'libc_r'" >> /etc/libmap.conf
echo "libc_r.so               libpthread.so   # now uses 'libpthread'" >> /etc/libmap.conf

Am besten mit find /usr -name “libc_r.so*” gucken, ob es so.7 oder so.6 heißen muss.

Falls gar kein Shared object vorliegt, müssten die Quelldateien von libc_r (durch die Installation der obigen Ports) in /usr/src/lib/libc_r liegen. Dann hier einfach “make && make install” eingeben.

4. Path erweitern, damit das Java Native Interface (jni.h) gefunden wird, und Sourcen kompilieren:

export PATH="/usr/local/jdk1.6.0/include:/usr/local/jdk1.6.0/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin"
./buildall.sh --enable-java -p freebsd -m gmake -b 64 -x c++

Auf 32-Bit-Systemen sollte “-b 64″ weg gelassen werden. “-b 32″ ist Standard.

5. Die kompilierten Dateien liegen im ./install-Verzeichnis.

Einfach von hier an eine beliebige andere Stelle verschieben und ggf. in den Pfad aufnehmen.

Das war’s schon! ;)

Wenn man nachher ein Java-Programm betreiben will, das dbxml.jar benutzt, muss der Flag des Installationsverzeichnisses von dbxml im Classpath angehangen werden:

# /usr/local/jdk1.6.0/bin/java \
 -Djava.library.path=/usr/local/dbxml/lib \
 ...

Falls es zu Problemen wie diesem hier kommt:

java.lang.UnsatisfiedLinkError: no dbxml_java-2.4 in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at com.sleepycat.dbxml.dbxml_javaJNI.<clinit>(dbxml_javaJNI.java:49)
        at com.sleepycat.dbxml.XmlManager.<init>(XmlManager.java:56)

Einfach einige Symlinks im Lib-Verzeichnis setzen:

ln -s libdbxml_java-2.4.so.0.0 libdbxml_java-2.4.so
ln -s libdbxml_java-2.4.so.0.0 libdbxml_java-2.4_g.so
ln -s libdbxml_java-2.4.so.0.0 libdbxml_java-2.so
ln -s libdbxml_java-2.4.so.0.0 libdbxml_java.so
ln -s libdbxml-2.4.so.0.0 libdbxml.so
ln -s libdbxml-2.4.so.0.0 libdbxml-2
ln -s libdbxml-2.4.so.0.0 libdbxml-2.4.so

Fehlermeldungen im Kontext

Beim Kompilieren von XERCES und XQILLA traten bei mir folgende Fehler auf:

  1. checking for gcc… gcc
    checking for C compiler default output file name…
    configure: error: C compiler cannot create executables
    See `config.log’ for more details.
  2. /usr/bin/ld: cannot find -lc_r
Trackbacks

Klicke den Link an, um zur ursprünglichen Seite zurück zu kehren.

Kommentare

You must be logged in to leave a response.