GT.M is a high performance, NoSQL database coupled with a MUMPS runtime. In this guide, we will install it on a fresh Ubuntu system, verify that it works, and build a sample database.
Installing GT.M through the package manager
The easiest way to install GT.M is using the Ubuntu package manager; apt.
chathaway@blaze:~$ sudo apt install fis-gtm
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
fis-gtm-6.3-000a gcc-6-base icu-devtools libasan3 libatomic1 libc-dev-bin
libc6 libc6-dbg libc6-dev libcilkrts5 libgcc-6-dev libicu-dev libitm1
liblsan0 libmpx2 libquadmath0 libstdc++-6-dev libtsan0 libubsan0
linux-libc-dev manpages-dev
Suggested packages:
glibc-doc icu-doc libstdc++-6-doc
The following NEW packages will be installed:
fis-gtm fis-gtm-6.3-000a gcc-6-base icu-devtools libasan3 libatomic1
libc-dev-bin libc6-dev libcilkrts5 libgcc-6-dev libicu-dev libitm1 liblsan0
libmpx2 libquadmath0 libstdc++-6-dev libtsan0 libubsan0 linux-libc-dev
manpages-dev
The following packages will be upgraded:
libc6 libc6-dbg
2 upgraded, 20 newly installed, 0 to remove and 185 not upgraded.
Need to get 36.4 MB/44.2 MB of archives.
After this operation, 260 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
. . .
After this is done, you should be able to run GT.M by activating the provided profile (which provides sane defaults) for many database settings, default database location, etc.
chathaway@blaze:~$ source /usr/lib/x86_64-linux-gnu/fis-gtm/V6.3-000A_x86_64/gtmprofile
%GDE-I-GDUSEDEFS, Using defaults for Global Directory
/home/chathaway/.fis-gtm/V6.3-000A_x86_64/g/gtm.gld
GDE>
%GDE-I-EXECOM, Executing command file /usr/lib/x86_64-linux-gnu/fis-gtm/V6.3-000A_x86_64/gdedefaults
GDE>
%GDE-I-VERIFY, Verification OK
%GDE-I-GDCREATE, Creating Global Directory file
/home/chathaway/.fis-gtm/V6.3-000A_x86_64/g/gtm.gld
chathaway@blaze:~$ gtm
GTM>WRITE "Hello world!"
Hello world!
Compiling from source
Again, this is a process best done by taking advantage of Ubuntu’s package manager. We can install the dependencies, then download and extract the source. The source has a file with instructions on how to install, but below is a short synopsis.
chathaway@blaze:~$ sudo apt-get build-dep fis-gtm
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev build-essential cmake cmake-data debhelper dh-autoreconf
dh-strip-nondeterminism dpkg-dev g++ g++-7 gcc gcc-7 gcc-7-multilib gcc-multilib lib32asan4 lib32atomic1
lib32cilkrts5 lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32quadmath0 lib32stdc++6 lib32ubsan0
libasan4 libassuan-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32 libconfig-dev libconfig9 libelf-dev
libfile-stripnondeterminism-perl libgcc-7-dev libgcrypt11-dev libgcrypt20-dev libgpg-error-dev libgpgme-dev
libjsoncpp1 libncurses5-dev librhash0 libsigsegv2 libssl-dev libstdc++-7-dev libtinfo-dev libtool libuv1
libx32asan4 libx32atomic1 libx32cilkrts5 libx32gcc-7-dev libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0
libx32stdc++6 libx32ubsan0 m4 make pkg-config po-debconf tcsh zlib1g-dev
The following packages will be upgraded:
libssl1.0.0
1 upgraded, 68 newly installed, 0 to remove and 184 not upgraded.
Need to get 46.6 MB/47.7 MB of archives.
After this operation, 205 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...
Note, I hit a small issue when doing this; documented below. To fix, simply edit /etc/apt/sources.list and uncomment every deb-src repository.
chathaway@blaze:~$ sudo apt-get build-dep fis-gtm
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list
Download the source package from sourceforge (https://sourceforge.net/projects/fis-gtm/files/GT.M-x86-Linux-src/V6.3-003A/) , extract them.
chathaway@blaze:~$ mkdir temp; cd temp
chathaway@blaze:~/temp$ tar -xvzf fis-gtm-V6.3-003A.tar.gz
chathaway@blaze:~/temp$ mkdir build; cd build
chathaway@blaze:~/temp/build$ cmake ../fis-gtm-V6.3-003A/ -DGTM_DIST=$gtm_dist -DCMAKE_BUILD_TYPE=DEBUG
chathaway@blaze:~/temp/build$ make -j8
And you should be rolling! Good luck, have fun!
These instructions are the views of the author, and do not represent the views of any affiliations. Additionally, no warranty is given, implied or otherwise.