Search code examples
mumps

How to solve %GTM-E-GDINVALID, Unrecognized Global Directory file format: mumps.gld, expected label: GTCGBDUNX007, found: GTCGBDUNX006?


I am getting this error with GT.M:

%GTM-E-GDINVALID, Unrecognized Global Directory file format: /home/blah/gt.m/example/mumps.gld, expected label: GTCGBDUNX007, found: GTCGBDUNX006

Here is what I did so far:

get the version http://sourceforge.net/projects/fis-gtm/

tar -xzf gtm_V55000_linux_i686_pro.tar.gz 

chmod +x semstat2 mupip mumps lke gtmsecshr gtcm_shmclean gtcm_server gtcm_play gtcm_pkdisp gtcm_gnp_server geteuid ftok dse

Now we start like this in Bash:

mkdir example; cd example

...and invoke the mumps from the parent dir:

../mumps -r GDE

The output is this:

%GDE-I-GDUSEDEFS, Using defaults for Global Directory 
 /home/blah/gt.m/example/mumps.gld

Now we set the working dir to create the gld file.

GDE>  change -s DEFAULT -f=/home/blah/gt.m/gt.m/example/
GDE> exit

The output from the command is this : >%GDE-I-VERIFY, Verification OK >%GDE-I-GDCREATE, Creating Global Directory file > /home/blah/gt.m/example/mumps.gld

Now this creates a v6 version of gld, which mupip does not like:

strings mumps.gld  | head -1

Which contains this string:

GTCGBDUNX006H

But mupip expects a 7 not a 6!

../mupip create

>%GTM-E-GDINVALID, Unrecognized Global Directory file format: >/home/blah/gt.m/example/mumps.gld, expected label: GTCGBDUNX007, found: GTCGBDUNX006

If I just edit the file and replace the 6 with a 7, ../mupip create.

This works!

Now I have a dat file, and go to gtm to save something : GTM>s ^foo("blah")=1

%GTM-E-GDINVALID, Unrecognized Global Directory file format: >/home/blah/gt.m/example/mumps.gld, expected label: GTCGBDUNX006, found: GTCGBDUNX007

Oh so that wants a v6, so good thing i backed up the old, one, i replace it .

GTM>s ^foo("blah")=1

that works GTM>zwr ^foo(*)

>^foo("blah")=1

So the data is stored.

Can anyone please explain this? In detail? Why does mupip operate with a different version number?

Note, I did not run any other commands, I am just learning and don't want to execute any huge install routines a root that I don't understand.


Solution

  • You either have GT.M already installed (and I would guess it is an older version) on your system somewhere else and have some environment variable defined for it in your bash/tcsh/*sh environment, or you didn't provide all the step you did to get to that error.

    My guess is that you already have GT.M installed somewhere and your above commands uses part of that installation. You can easily verify this using this command : env | grep gtm.

    If I follow your steps mentioned above, I get this result :

    laurent@laurent /tmp/test $ tar -zxf ~/Projects/gtm_V55000_linux_i686_pro.tar.gz
    laurent@laurent /tmp/test $ chmod +x semstat2 mupip mumps lke gtmsecshr gtcm_shmclean gtcm_server gtcm_play gtcm_pkdisp gtcm_gnp_server geteuid ftok dse
    laurent@laurent /tmp/test $ mkdir example; cd example
    laurent@laurent /tmp/test/example $ ../mumps -r GDE
    %GTM-E-GTMDISTUNDEF, Environment variable $gtm_dist is not defined
    

    So, I as said, you either did something else, or have a different GT.M version already installed and this is why some commands expect different versions of GLD.