My personal webspace

A webspace for innovation, free thinking, and procrastination

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.


Content © 2022 Charles Hathaway