The system has been tested on Red Hat Linux 4.2, 6.0, 6.2, 7.0, and 7.1. lambda-DB is built on top of SHORE 1.1.1, so you will need to install SHORE first. If you have a new Pentium Red Hat Linux workstation, you can install SHORE and lambda-DB directly in one step. Otherwise, you will need to install SHORE and lambda-DB from sources.
If you have a new Red Hat Linux (version 5.0 or later) on an Intel-based architecture (Pentium), you can install all the binaries from http://lambda.uta.edu/ldb.1.8.tar.gz (5.3MBs):
gzip -d -c ldb.1.8.tar.gz | tar -xvf -Then change the .shoreconfig and lambda-DB/ldb.include files to point to your directories (change all pathnames that contain the word "fegaras"). Then do (if necessary):
mv .shoreconfig shore.rc ~/Then start the SHORE server in a separate window using:
cd shoreserver ../shore/bin/shoreIf you are using Red Hat Linux 7.0/7.1, you may need to install the gcc/g++ compatibility packages (see the "Installing SHORE on a glibc/Intel based Red Hat Linux" section). Finally, go to the "Testing the Installation" section below.
SHORE 1.1.1 was written using the old libc5 libraries. Check first your gcc version using gcc -v. If it is 18.104.22.168 or 22.214.171.124, it means that your gcc is libc5-based. If it has a later version, it is glibc-based. For example, Red Hat Linux 4.2 or earlier is libc5-based, while Red Hat Linux 5.0 or later is glibc-based. Recently, GNU changed the libraries once again. So SHORE doesn't compile any more on RHL 7.0/7.1. If you have RHL 7.0/7.1, you need to use the backwards compatibility (ie. the old) gcc/g++ packages (see below).
To run the SHORE server on libc5-based Linux, you need tcl version 7.4 (you can easily download this version from scriptics). Then, retrieve the SHORE source and documentation files from here. Then extract the files using:
gzip -d -c linux-shore.tar.gz | tar -xvf -This will create a directory shore-source and will extract the files inside. Then edit the shore-source/config/config.h file and change the value of TclLib to point to your tcl 7.4 library and the value of FlexLib to point to your libfl.a library. You may also want to remove debugging which slows down SHORE. Then, compile it following the directions in the SHORE installation manual. Finally, run the SHORE server in a separate window and test the PSCAN example in the shore-source/examples/pscan/ directory.
First download the file http://lambda.uta.edu/RH-glibc-shore.tar.gz (3.46MBs) in the directory you want to install SHORE. Then do
gzip -d -c RH-glibc-shore.tar.gz | tar -xvf -and you follow the directions in the file install.
If you are using Red Hat Linux 7.0/7.1, you need to check if you have i386-glibc21-linux-gcc in your /usr/bin directory. If not, you need to install the backwards compatibility gcc/g++ files, compat-*.rpm, from a RHL 7.1 distribution You may also need to install the perl-5.6.0-12.i386.rpm from the same distribution, if perl5.6.0 doesn't exist. Then change the config/config.h file:
#define Gcc 'i386-glibc21-linux-gcc' #define GPlusPlus 'i386-glibc21-linux-g++' #define Perl perl5.6.0and replace the two occurrences of gcc in tools/makemake with i386-glibc21-linux-gcc. Then you can use perl5.6.0 tools/makemake -r to build the makefiles. You should also use i386-glibc21-linux-g++ instead of g++ when you use SHORE on Red Hat Linux 7.0/7.1.
CFLAGS= -O -DNO_SIGNALS -DALL_INTERIOR_POINTERS -DSILENT -DATOMIC_UNCOLLECTABLE -DREDIRECT_MALLOC=GC_malloc_uncollectableand you execute: make and make c++ to create the C and C++ garbage collectors.
gzip -d -c lambda-DB.tar.gz | tar -xvf -This will create a directory lambda-DB and will extract the files inside.
If you haven't done so, start the SHORE server in a separate window (The server must be up and running to compile the example schemas and queries). Go to the lambda-DB/examples/school directory and execute the following commands:
make build # initialize the user database and catalogs make # compile school.odl to build the school schema and populate the database make query # compile query.oql which contains one statically- and one dynamically-compiled OQL query ./query # execute the query against the School databaseOptional step: extensive test of the system by compiling and executing over 40 static and 40 dynamic OQL queries:
make test # compile test.oql which contains over 80 OQL queries ./test # execute the queries against the School databaseThe lambda-DB/examples/xml directory contains another example for storing and handling XML data.
To test the VOODOO interface, run:
./voodooand set the schema name to School.
lambda-DB can be easily used for class projects. First, for a large class, it is good idea to increase the database size before you create it. This can be done by changing the line:
set rootvolumesize 50000(ie, 50MBs) in the file ~/shore.rc at the server directory. Then, make sure that you do umask 0 before you create the shoreserver directories and that all SHORE and lambda-DB executables/libraries/include files have the right permission. Then, execute the following SHORE server command during a SHORE session:
begin; chmod 0777 /; commitStudents must create a subdirectory in their home directory for their project. The Makefile in this directory can be similar to lambda-DB/examples/school/Makefile. They need also to copy .shoreconfig to their top directory. Note that this can only work with my new revised version of SHORE SDL. Every user is allowed to have one workspace (with unlimited number of modules), named after the user's login name. Students with the same Unix groupid can read but not write each other's schemas/data, while students with different Unix groupids have no R/W permission to the other's workspace.
Last modified: 11/13/01 by Leonidas Fegaras