Downloading and installing Unidatab

Unidatab can be downloaded from the Github download site.

The packages comes with several interfaces:

1. Administrator console (unid-adm)
2. TCP server (unid-serv) and client (unid-clic)
3. CGI (Unidatab.cgi)
3. GUI (unid-gui)

and links against the following external open source libraries:

– Boost.regex
– ComPP (included in Unidatab’s package)
– OpenSSL
– Readline
– SQLite3
– wxWidgets

*** 1. Installing and running the main executable: unid-adm ***

Compilation: see “unid-adm” below.

Once you have an executable named unid-adm, launch a command line as:

$ unid-adm db.unid user

where “db.unid” can be any name for the new db,
and “user” can be any user name for a first administrator. The default password
is always set to ‘adminp’ and it will be possible to update it later to any
string of your choice. Users should then proceed to the main
test suite by typing at unid-adm command line:

# unidtest

Then a first set of records will be created by :

# unidset

Help on Unidatab SQL functions, and SQL objects can be obtained either by:

# SELECT sql_help('');

for the whole set, or specifying the argument by name, e.g.:

# SELECT sql_help('subsume');

unid-adm can do administration tasks like adding or deleting users, setting their privileges etc…

*** 2. Installing and running the server, command line and CGI ***

Compilation: see “unid-serv” and “unid-clic” below.

To build this tool, you need to install the ComPP libraries first. Everything should run well in this preliminary step with ./configure, make && make install, and libraries and headers should be installed in the default places (/usr/lib, /usr/include).

Once you have got an executable named unid-serv, you can launch a command line as:

$ unid-serv unid.ini

to start the server with a default init file configured for “main.unid” user
“admin”, then from  another shell type:

$ unid-clic localhost 8765 main.unid admin

and provide password to start a session for sending unidSql and SQL command lines such as :

# SELECT * FROM data LIMIT 10;

An easy way to navigate and modify dbs and subdbs is brought by Unidatab.cgi,
a simple web interface. Put Unidatab.cgi in your cgi-bin directory,
and Unidatab.html in your local htdocs folder. Then modify the first lines of
Unidatab.cgi to match these locations. Notice the third line that refers to
unid-clic: Unidatab.cgi does not provide its own db access but redirects
to unid-clic. The content of main.unid can now be explored more easily.
But unless you have added your own data, this content is limited to help records.

*** 3. Installing and running the Graphical User Interface ***

Compilation: see “unid-gui” below. unid-gui expects to be launched from within the Unidatab ‘run’ directory or to have a path argument (option -c) for its configuration file “unid-gui.conf”. From here everything should be gradually explained in the help section of unid-gui.

*** 4. Compilation (Linux) ***


$ g++ -std=c++0x -O3 -w -pthread -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I./ -I/usr/include/ComPP -lComPP -lcrypto -lSysPP -lboost_regex -lsqlite3 -lreadline unidAdmin.cpp -o unid-adm


$ g++ -std=c++0x -O3 -w -pthread -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I./ -I/usr/include/ComPP -lComPP -lcrypto -lSysPP -lboost_regex -lsqlite3 -lreadline unidServer.cpp -o unid-serv


$ g++ -std=c++0x -O3 -w -pthread -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I./ -I/usr/include/ComPP -lComPP -lSysPP -lboost_regex -lcrypto -lreadline -lsqlite3 unidClicli.cpp -o unid-clic


$ g++ -std=c++0x -O3 -w -pthread -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -include wx_pch.h -I./ -I/usr/include/ComPP `wx-config --cflags` `wx-config --libs all`  -lComPP -lSysPP -lboost_regex -lcrypto -lreadline -lsqlite3 UnidWxApp.cpp UnidWxMain.cpp UnidWxTable.cpp -o unid-gui

or build unid-gui step by step:

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -I./ -c -o Unid.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -I./ -c -o UnidCon.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -I./ -c -o UnidSql.o 

$ g++ -std=c++0x -03 -w -fexceptions -pthread -I./ -c -o UnidSrv.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -Winvalid-pch -I./ `wx-config --cflags` -c -o UnidWx.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -Winvalid-pch -I./ `wx-config --cflags` -c UnidWxApp.cpp -o UnidWxApp.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -Winvalid-pch -I./ `wx-config --cflags` -c UnidWxMain.cpp -o UnidWxMain.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -Winvalid-pch -I./ `wx-config --cflags` -c UnidWxTable.cpp -o UnidWxTable.o 

$ g++ -std=c++0x -O3 -w -fexceptions -pthread -D__WXGTK__ -DWX_PRECOMP -DwxUSE_UNICODE -Winvalid-pch -I./ -I/usr/include/ComPP `wx-config --cflafs` `wx-config --libs all` -lboost_regex -lComPP -lcrypto -lsqlite3 -lSysPP Unid.o UnidCon.o UnidSql.o UnidSrv.o UnidWx.o UnidWxApp.o UnidWxMain.o UnidWxTable.o -o unid-gui