كيفية حل %GTM-E-GDINVALID، تنسيق ملف الدليل العالمي غير المعروف:mumps.gld، التسمية المتوقعة:تم العثور على GTCGBDUNX007:GTCGBDUNX006؟
-
12-11-2019 - |
سؤال
أتلقى هذا الخطأ مع gt.m
%GTM-E-GDINVALID, Unrecognized Global Directory file format: /home/blah/gt.m/example/mumps.gld, expected label: GTCGBDUNX007, found: GTCGBDUNX006
وإليك ما فعلته حتى الآن:
احصل على النسخة 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
الآن نبدأ هكذا في باش
mkdir example; cd example
واستدعاء النكاف من الوالد دير،
../mumps -r GDE
الإخراج هو هذا
%GDE-I-GDUSEDEFS, Using defaults for Global Directory
/home/blah/gt.m/example/mumps.gld
الآن قمنا بتعيين دير العمل لإنشاء ملف gld
GDE> change -s DEFAULT -f=/home/blah/gt.m/gt.m/example/
GDE> exit
الإخراج من الأمر هو هذا:
٪ gde-verify ، التحقق OK ٪ gde-i-gdcreate ، إنشاء ملف دليل عالمي /home/blah/gt.m/example/mumps.gld
يؤدي هذا الآن إلى إنشاء إصدار v6 من gld، وهو ما لا يحبه mupip.
strings mumps.gld | head -1
الذي يحتوي على هذه السلسلة:
GTCGBDUNX006H
لكن Mupip يتوقع 7 وليس 6!
../mupip create
>%GTM-E-GDINVALID, Unrecognized Global Directory file format: >/home/blah/gt.m/example/mumps.gld, expected label: GTCGBDUNX007, found: GTCGBDUNX006
إذا قمت فقط بتحرير الملف واستبدال 6 بـ 7، ../mupip create
هذا يعمل!
الآن لدي ملف dat، وانتقل إلى gtm لحفظ شيء ما:GTM>s ^foo("blah")=1
%GTM-E-GDINVALID، تنسيق ملف الدليل العالمي غير معروف:>/home/blah/gt.m/example/mumps.gld، التسمية المتوقعة:تم العثور على GTCGBDUNX006:GTCGBDUNX007
أوه، هذا يريد إصدارًا v6، لذا من الجيد أنني قمت بعمل نسخة احتياطية للإصدار القديم، واحد، واستبدله.
GTM>s ^foo("blah")=1
انه يعمل انها تعملGTM>zwr ^foo(*)
>^foo("blah")=1
لذلك يتم تخزين البيانات.
هل يمكن لأحد أن يشرح هذا؟بالتفصيل؟لماذا يعمل Mupip برقم إصدار مختلف؟ملاحظة، لم أقم بتشغيل أي أوامر أخرى، أنا أتعلم فقط ولا أريد تنفيذ أي إجراءات تثبيت ضخمة، وهو أمر لا أفهمه.
المحلول
إما أن يكون لديك GT.M مثبتًا بالفعل (وأعتقد أنه إصدار أقدم) على نظامك في مكان آخر ولديك بعض متغيرات البيئة المحددة له في بيئة bash/tcsh/*sh، أو أنك لم توفر كل الميزات الخطوة التي قمت بها للوصول إلى هذا الخطأ.
أعتقد أن GT.M مثبت بالفعل في مكان ما وأن الأوامر المذكورة أعلاه تستخدم جزءًا من هذا التثبيت.يمكنك التحقق من ذلك بسهولة باستخدام هذا الأمر: env | grep gtm
.
إذا اتبعت خطواتك المذكورة أعلاه، أحصل على هذه النتيجة:
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
لذلك، كما قلت، إما أنك فعلت شيئًا آخر، أو أن لديك إصدارًا مختلفًا من GT.M مثبتًا بالفعل، ولهذا السبب تتوقع بعض الأوامر إصدارات مختلفة من GLD.
نصائح أخرى
في خطواتك، لا تظهر ما إذا كنت قد قمت بتثبيت GT.M أم لا.
هذه هي النسخة التي تم فك ضغطها فقط، أولا:
chmod 777 configure
./configure
سيؤدي التثبيت إلى إنتاج ملفات جديدة في دليل gtm_dist.
آمل أن يكون قد ساعد.
كما أشار Bhaskar في منشورك المتقاطع على Hardhats.تأكد من اتباع تعليمات التثبيت الخاصة بـ GT.M.يمكن العثور على التعليمات في الفصل الثاني من دليل إدارة وعمليات UNIX