トラブルシューティング

GTM インストール時の問題点
2015 年 6 月 10 日

ubuntu-14.04.2-server、Debian8 上で./configure を使った GTM のインストール過程
でエラーが出ます。。
インストール時のエラー
nicu@shu:~/download$ sudo su [sudo] password for nicu:
root@shu:~#
root@shu: # cd /home/nicu/download
root@shu:~/download# ./configure
./_XCMD.m --->
./_xcmd.m
Compiling all of the MUMPS routines. This may take a moment.
./configure: 695: ./configure: ld: not found
Installation completed. Would you like all the temporary files
removed from this directory? (y or n) n
このインストールでは libgtmutil.so が出来てこない。
root@shu:~# sudo find / -name libgtmutil.so -print
root@shu:~#
libgtmutil.so が無いと、utf8 モードで起動時にエラー。EWD.js のインストールが
進まないなどの問題を起こします。
V6.2-002_x86_64
手がかり(ほぼ同様の現象)
Robert Anders
GT.M V6.2-000 on Debian Jessie, UTF-8, "File %XCMD not found"
https://groups.google.com/forum/#!searchin/comp.lang.mumps/ld$3A$20not$20found/comp.lang.mumps
/VG593UE0bQ4/zuxJgbAq9soJ
K.S. Bhaskar
It appears that the shared library
/usr/lib/x86_64-linux-gnu/fis-gtm/V6.2-000_x86_64/utf8/libgtmutil.so in the
Debian Jesse package is missing the object code for utility programs.
see about fixing the package.
We'll
Meanwhile, you can use the gtminstall script
to install GT.M - go to
https://sourceforge.net/projects/fis-gtm/files/GT.M%20Installer/ and get the
latest version (currently 0.13).
Apologies for the inconvenience.
これは一部の OS のバージョンでインストールに不具合があり、shared library
/usr/lib/x86_64-linux-gnu/fis-gtm/V6.2-000_x86_64/utf8/libgtmutil.so のオブ
ジェクトコードに問題がある。
インストール例
/home/nicu/download に gtm_V62002_linux_x8664_pro.tar.gz をダウンロード
ディレクトリに移動
nicu@shu:~$ cd download
nicu@shu:~/download $
解凍
nicu@shu:~/download$ tar xvzf gtm_V62002_linux_x8664_pro.tar.gz
解凍先のディレクトリで./gtminstall
(
詳
細
な
を実行
オ
プ
シ
ョ
http://sourceforge.net/projects/fis-gtm/files/GT.M%20Installer/
ン
は
を参照してく
ださい)
nicu@shu:~/download $ sudo ./gtminstall --utf8 5.2
nicu@shu:~/download $
# 一瞬でインストール終了
この問題は debian7 では起こらず問題なくインストール終了(シングルバイト)
Compiling all of the MUMPS routines. This may take a moment.
Object files of M routines placed in shared library
/usr/lib/fis-gtm/V6.2-002_x86_64/libgtmutil.so
Keep original .o object files (y or n)? y
問題ない例ではインストール終了直前に shared library である
/usr/lib/fis-gtm/V6.2-002_x86_64/libgtmutil.so が出来たとのメッセージが出てい
る。

EWD.js の再起動時のエラー
LANG の異なるシェル(ターミナル、コンソール)で EWD.js を起動すると EWD.js
が壊れる。
残念ですがシェルの起動時にシングルバイトで GTM を動作させた事により起
こりました。
GTM はシングルバイト動作用にオブジェクトを切り替えています。UTF-8 に切り
替えた時正しくオブジェクトの切り替えができていません。
シェルスクリプト
に全てのターミナル、コンソールが UTF-8 モードで動作するよう設定されている
か確認してください。 確認後 EWD.js を再インストールして下さい(GTM のイ
ンストールは不要です)
。
以下のエラー内容は以下の様になります。
nicu@shu:~/ewdjs$
node test-gtm.js
db: {}
db.optn: {"ok":1,"result":"1"}
{"ok":0,"errorCode":150380986,"errorMessage":"%GTM-E-INVOBJFILE,
Cannot ZLINK object file
/home/nicu/ewdjs/node_modules/nodem/src/v4wNode.o due to unexpected
format,%GTM-I-TEXT, Object compiled with CHSET=M which is different
from $ZCHSET"}
nicu@shu:~/ewdjs$
nicu@shu:~/ewdjs$ node ewdStart-gtm gtm-config
********************************************
**** EWD.js Build 100 (15 May 2015) *******
********************************************
・
・
*** ERROR: Global access test failed: Code
150380986; %GTM-E-INVOBJFILE, Cannot ZLINK object file
/home/nicu/ewdjs/node_modules/nodem/src/v4wNode.o due to unexpected
format,%GTM-I-TEXT, Object compiled with CHSET=M which is different
from $ZCHSET
child process returned response
{"pid":4494,"type":"firstChildInitialisationError","processNo":0}
Startup aborted
child process returned response
{"pid":4494,"type":"initialise","release":true,"empty":true,"processNo":0}
process 4494 returned to available pool; type=initialise
EWD.js shutting down...
*** 4494 closed gtm
GTM は正常動作
nicu@shu:~$ gtm
GTM>あ
%GTM-E-CMD, Command expected but not found
あ
^----GTM>h
原因
コンソールとターミナルで環境変数 LANG の設定が異なっている。
(コンソ
ールの文字化け修正しようとしてコンソールの環境変数が LANG=C にな
っている。)
.bashrc 駄目な設定ファイル例
(同じユーザーなのにコンソール毎に立ち上がる言語環境が機となって
しまう)
case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8 ;;
esac
.bashrc 正しい設定例
とにかく全てのコンソールで LANG="ja_JP.UTF-8"とする。
export LANG="ja_JP.UTF-8"
export gtm_icu_version="5.2"
export gtm_chset="UTF-8"
export LC_CTYPE=" ja_JP.UTF-8"
source /usr/lib/fis-gtm/V6.2-002_x86_64/gtmprofile
という事なので文字化は無視して LANG=ja_JP.UTF-8 とすれば良い。
EWD.js の再インストール
nicu@shu:~$ ls
download
ewdjs
nicu@shu:~$ sudo rm -r ewdjs
[sudo] password for nicu:
nicu@shu:~$ mkdir ewdjs
nicu@shu:~$ cd ewdjs
nicu@shu:~/ewdjs$ npm install ewdjs
・
・
Install EWD.js to directory path (/home/nicu/ewdjs):
・
・
If you're an experienced user or this is a production environment,
enter N
Enter Y/N: y
・
・
nicu@shu:~/ewdjs$ npm install nodem
¥
> [email protected] install /home/nicu/ewdjs/node_modules/nodem
> (node-gyp rebuild 2> builderror.log) || (exit 0)
[email protected] node_modules/nodem
nicu@shu:~/ewdjs$
node --version
v0.12.4
nicu@shu:~/ewdjs$ cd ~/ewdjs/node_modules/nodem/lib
nicu@shu:~/ewdjs/node_modules/nodem/lib$ ls
mumps.node
mumps10.node_x8664
mumps12.node_x8664
mumps10.node_i686
mumps8.node_x8664
mumps12.node_i686
mumps8.node_i686
nodem.js
nicu@shu:~/ewdjs/node_modules/nodem/lib$ rm mumps.node
nicu@shu:~/ewdjs/node_modules/nodem/lib$ cp mumps12.node_x8664
mumps.node
古いリンクの削除
nicu@shu:~/ewdjs/node_modules/nodem/lib$ cd /usr/local/lib/
nicu@shu:/usr/local/lib$ ls
libgtmshr.so
python2.7
python3.4
nicu@shu:/usr/local/lib$ sudo rm libgtmshr.so
nicu@shu:/usr/local/lib$ ls
python2.7 python3.4
nicu@shu:/usr/local/lib$ sudo ln -s
/usr/lib/fis-gtm/V6.2-002_x86_64/libgtmshr.o
/usr/local/lib/libgtmshr.so
nicu@shu:/usr/local/lib$ sudo ldconfig
起動テスト
nicu@shu:/usr/local/lib$ cd ~/ewdjs
nicu@shu:~/ewdjs$
node test-gtm.js
db: {}
db.optn: {"ok":1,"result":"1"}
"Node.js Adaptor for GT.M: Version: 0.6.0 (FWSLC); GT.M V6.2-002
Linux x86_64"
nicu@shu:~/ewdjs$