GT.Mの環境変数のセットアップ

いくつかの環境変数は、GT.Mの動作を制御します。環境変数のいくつかは通常動作のために設定しなければなりませんが、反対に、環境変数が設定されていない場合、他のGT.Mのためにはデフォルトの値を想定します。

GT.Mディストリビューションには、お好みのシェルでデフォルトのGT.M環境をセットアップする多くのスクリプトが付属しています。これらのスクリプトは、次のとおりです。

  1. gtmprofile:POSIXシェル用のシステムとGT.Mアプリケーション開発環境を設定するのに合理的なデフォルトを使います。gtmprofileスクリプトは、環境変数 gtm_dist、gtmgbldir、gtm_icu_version、gtm_log、gtm_principal_editing、gtm_prompt、gtm_retention、gtmroutines、gtm_tmp、およびgtmverのデフォルト値を設定します。gtmprofile スクリプトをソースすると、デフォルトの実行環境(グローバルディレクトリとBEFORE_IMAGEジャーナリングを持つデフォルトデータベースファイル)が存在しない場合は作成されます。

  2. gtmcshrc:Cシェル互換のシェル用のデフォルトのGT.M環境を設定します。gtm_dist、gtmgbldir、gtm_chset および gtmroutines のデフォルト値を設定します。エイリアスも作成されるので、完全なパスを入力せずにGT.Mとそのユーティリティを実行できます。gtmprofile はGT.Mのリリースでは最新ですが、gtmcshrc はgtmprofile_preV54000と同じレベルの洗練さを備えています。これは、gtmprofileスクリプトほど積極的に管理されていません。

  3. gtmprofile_preV54000:このスクリプトは、V5.4-000より前のGT.Mディストリビューションで、gtmprofileとして提供されました。このスクリプトは、gtmschrcに相当するPOSIXシェルです。

  4. gtmbase:シェルのタイプを検出し、gtmprofileを .profileに追加するか、gtmchsrc を.cshrcに追加して、シェルが次のログイン操作で自動的にgtmprofileまたはgtmschrcをソースするようにします。FISでは、gtmbaseをそのまま使用することはお勧めしません。あなたのシステムに適した開発用のスクリプトの例として使用してください。これは、gtmprofileスクリプトほど積極的に管理されていません。

  5. gtm:POSIXシェルで直接モードでGT.Mを起動します。gtmスクリプトは gtmprofileをソース(source)します。 環境変数 gtm_retention で指定された日数より古い以前の世代のジャーナルとテンポラリ・ファイルも削除します。それは実行時にデータベースを自動的に回復しようとし、GT.Mの「すぐに使える(out of the box)」利用方法に適しています。 大規模なマルチユーザー環境では機能しますが、より効率的なスクリプトを変更したり、置き換えることができます。

  6. gdedefaults :GDEによって定義されたデータベースの特性でデフォルト値を指定するGDEのコマンドファイルです。

このようなスクリプトは、ユーザーにより親切にそのまま利用できるようにGT.Mの経験を与えるように設計されています。これらのスクリプトを使用せずに通常のGT.M動作の環境を設定できるのですが、それは環境の構成を管理する方法を理解するためにこれらのスクリプトをやってみることが重要です。

gtmprofile

POSIXシェルでは、gtmprofileを使用すると、単一ユーザーで複製されないGT.Mの使用環境を設定できます。

gtmprofile は、通常のGT.M操作のための以下の環境変数の適切なデフォルトを設定します:

gtmdir, gtm_dist, gtm_etrap, gtmgbldir, gtm_icu_version, gtm_log, gtm_principal_editing, gtm_prompt, gtm_repl_instance, gtm_retention, gtmroutines, gtm_tmp, gtmver 

gtmprofile ソースする前に、または、gtmスクリプトを実行する前に、以下の環境変数を設定することができます:

  • gtm_chset - UTF-8モードでGT.Mを実行するには、これを "UTF-8"に設定します。 デフォルトではMモードになります。UTF-8モードでは LC_CTYPE または LC_ALL にUTF-8ロケールを設定する必要があるため、もしロケールが指定されていない場合、gtmprofile はUTF-8ロケールの設定も試みます。GT.MはUTF-8モードでgtm_icu_versionを設定する必要があることが多いので、設定されていなければgtmprofileはシステム上のICUバージョンを判定して設定します。。これには、icu-configプログラムをgtmprofileによってインストールして実行する必要があります

  • gtmdir - gtmprofile で設定された環境のディレクトリを定義するには、これを設定します。 デフォルトでは $HOME/.fis-gtm になります。

以下のシェル変数は、スクリプトによって使用され、その完了時には未設定のままです。

old_gtm_dist, old_gtmroutines, old_gtmver, tmp_gtm_tmp, tmp_passwd. 

gtmprofileスクリプトによって設定された $gtmroutines の値は、Mモードの $gtmdir/$gtmver/o ディレクトリとUTF-8モードの$gtmdir/$gtmver/o/utf8 ディレクトリのオブジェクトファイルのデフォルトで自動再リンクを有効にします。自動再リンクには、データベース操作用の共有メモリリソースとその制限を超えるものが必要です。もしシステムの共有メモリが不適切に設定されていると、GT.Mは次の行に沿ってメッセージを表示します:

%GTM-E-SYSCALL, Error received from system call shmget() failed

共有メモリの制限を設定するには、OSのマニュアルを参照してください(通常のLinuxシステムの場合、/etc/sysctl.conf の kernel.shmmaxパラメータなど)。

gtmprofile(とgtm)スクリプトは、意図的に、それらを繰り返し呼び出すことが安全であるように冪等性です。GT.Mのインストールプロセスは、gtmprofile が常にgtm_distを正しく設定するようにします。冪等性は、$gtm_distの値をチェックし、gtm_dist がすでに定義されている場合は、環境変数へのすべての変更をスキップすることによって実装されます。

gtm が gtmprofile を sourceコマンドで実行する時、環境が存在しない場合は、それはデフォルトの実行環境(BEFORE_IMAGEジャーナリングを持つグローバルディレクトリとデフォルトのデータベース)を提供します。デフォルトでは、$HOME/.fis-gtmに次のような構造のデータベースを作成します。 このディレクトリ構造は、GT.Mルーチン(r)、オブジェクトファイル(o)、およびデータベース関連ファイル(g)のそれぞれの場所が異なります。

.fis-gtm
|-- r
|-- V6.2-000_x86_64
| |-- g 
| | |-- gtm.dat 
| | |-- gtm.gld 
| | `-- gtm.mjl 
| |-- o 
| | `-- utf8 
| `-- r 
|-- V6.2-001_x86_64
 |-- g
 | |-- gtm.dat 
 | |-- gtm.gld 
 | `-- gtm.mjl 
 |-- o
 | `-- utf8
 `-- r 

V6.2-001_x86_64は現行リリースおよびプラットフォーム情報を表し、V6.2-000_x86_64は以前に使用されたGT.Mリリースを表します。

Mモードの64ビットプラットフォームでは、gtmprofile は環境変数gtmroutinesを次のように設定します($gtm_dist と$gtmverは上記で説明した通りです):

$gtmdir/$gtmver/o*($gtmdir/$gtmver/r $gtmdir/r) $gtm_dist/plugin/o($gtm_dist/plugin/r) $gtm_dist/libgtmutil.so $gtm_dist

$gtmdir/$gtmver/o*($gtmdir/$gtmver/r $gtmdir/r)は、GT.M が $gtmdir/$ gtmver/r にあるルーチンを検索することを指定します、次に $gtmdir/r、 オブジェクトコードの $gtmdir/$gtmver/o を利用して、次に $gtm_distのプラグインサブディレクトリ内のルーチン、次に $gtm_dist のルーチン、GT.Mで配布されたルーチンの共有ライブラリを探し、次にそこにインストールされている他のルーチンを探します。オブジェクトディレクトリの後の *-suffix は、自動再リンク機能を有効にします。

GT.Mソースとオブジェクトファイルの管理については、 GT.Mプログラマーズガイド の $ZROUTINESのセクションを参照してください。

$gtm_chsetがUTF-8に設定されていると、gtmprofileはgtmroutinesを次のように設定します:

[参考]$gtmdir/$gtmver/o*($gtmdir/$gtmver/r $gtmdir/r) $gtm_dist/plugin/o($gtm_dist/plugin/r) $gtm_dist/libgtmutil.so $gtm_dist

gtmprofileは、$gtm_distをUTF-8モードでGT.Mインストールディレクトリのutf8サブディレクトリに設定することに注意してください。もし共有ライブラリを含むプラグインをインストールした場合、gtmprofileスクリプトにはそれらが含まれています。たとえば、GT.M POSIXおよびZLIBプラグインを64ビットプラットフォームにインストールした場合、gtmdirを/home/jdoe1に、GT.Mを/opt/fis-gtm/V6.2-001_x86_64にインストールすると、gtmprofileはgtmroutinesを設定します:

/home/jdoe1/.fis-gtm/V6.2-001_x86_64/o*(/home/jdoe1/.fis-gtm/V6.2-001_x86_64/r /home/jdoe1/.fis-gtm/r) /usr/lib/fis-gtm/V6.2-001_x86_64/plugin/o/_POSIX.so /usr/lib/fis-gtm/V6.2-001_x86_64/plugin/o/_ZLIB.so /usr/lib/fis-gtm/V6.2-001_x86_64/plugin/o(/usr/lib/fis-gtm/V6.2-001_x86_64/plugin/r) /usr/lib/fis-gtm/V6.2-001_x86_64/libgtmutil.so /usr/lib/fis-gtm/V6.2-001_x86_64
[注意] 注意

gtmprofile をsourceコマンドするシナリオは。この例のためのみです。マルチユーザ環境用にgtmprofileを実装する前に、システム管理者に相談してください。

gtmprofile は、次のエイリアスを作成します:

alias dse="$gtm_dist/dse"
alias gde="$gtm_dist/mumps -run GDE"
alias gtm="$gtm_dist/gtm"
alias lke="$gtm_dist/lke"
alias mupip="$gtm_dist/mupip"

もし /var/log/fis-gtm/$gtmver ディレクトリが存在する場合、gtmprofile は、$gtm_log に値としてそれを設定します 。もし gtmprofile が /var/log/fis-gtm/$gtmver を見つけられない場合は、$ gtm_tmpを使用して $gtm_logの値を設定します。

gtmcshrc

CタイプのシェルでデフォルトのGT.Mの環境を設定します。 $gtm_dist, $gtmgbldir, $gtm_chset, $gtmroutines をセットし、システム環境変数PATHに $gtm_dist を追加します。

gtmcshrc スクリプトをsourceコマンドで実行するために、タイプしてください:

$ source <path_to_GT.M_installation_directory>/gtmcshrc 

また、スクリプトは次回のログイン時に自動的にsourceコマンドを実行され取得するので、 .cshrcファイルに上記のコマンドを配置するgtmbaseスクリプトを実行することができます。

gtmcshrc も、次のエイリアスを作成します。

alias gtm '$gtm_dist/mumps -direct'
alias mupip '$gtm_dist/mupip'
alias lke '$gtm_dist/lke'
alias gde '$gtm_dist/mumps -r ^GDE'
alias dse '$gtm_dist/dse'

これにより、GT.Mがインストールされたディレクトリへのフルパスを指定せずに、GT.MとGT.Mのユーティリティを実行することができます。

gtmbase

シェルに応じて、.profileファイル、または、.cshrc ファイルの行の後に追加します。

POSIXシェルでは、gtmbase は .profile に次の行を追加します。:

. <gtm_dist pathname>/gtmprofile

Cシェルでは、.cshrc に、次の行を追加します:

source <gtm_dist pathname>/gtmcshrc 

gdedefaults

GDEによって定義されたデータベースの特性にデフォルトまたはテンプレートの値を指定します。

gtm

gtmスクリプトは #!/bin/sh で始まり、どのシェルでも実行できます。また、プログラムを実行してダイレクトモードで実行することもできます。gtmprofile をsourceコマンドで実行し、BEFORE_IMAGEジャーナリングでデフォルトのGT.Mデータベースファイルを設定します。起動時に自動的にデータベースを回復します。このスクリプトは、GT.Mを実行するために必要なものすべてを、簡単にすぐに(out-of-box)体験できるように設定します。

マルチユーザーのマルチ環境システムでは、設定用にgtmスクリプトを変更または置き換える必要があります。

gtm スクリプトは、グローバルディレクトリ( $gtmgbldirが指すように )とそのディレクトリのサブディレクトリを含むディレクトリから、$gtm_retention の日数より古いすべての以前の世代のジャーナルファイル (*_<時刻と日付スタンプ>ファイル) を削除します。デフォルトでは、$gtm_retentionは42です。ただし、データベースのバックアップの頻度でそれを調整することもできます。

以前の世代のジャーナルファイルの削除は、現在の $gtmgbldir が示すデータベース/ジャーナルファイルに固有のものではなく、gtm スクリプトを実行するディレクトリに固有であることに注意してください。

もしGT.MをUTF-8モードで使用する場合は、$gtm_chsetをUTF-8に、LC_CTYPEをUTF-8ロケールに設定し、gtmスクリプトを実行します。

もしデータベース暗号化を使用する場合は、最初にgtm_passwdおよびgtm_dbkeys環境変数を設定してからgtmスクリプトを実行してください。

gtmスクリプトを実行するには、以下のようにタイプしてください:

$ <path to your GT.M Distribution>/gtm 

初心者ユーザを支援するためにヘルプを起動するには、次のように入力します:

$ <GT.M配布ディレクトリへのパス>/gtm -help
gtm -dir[ect]   ダイレクトモードに入ります(haltでシェルに戻る) 
gtm -run <entryref>  entryref での実行を開始
gtm -help / gtm -h / gtm -?    このテキストを表示
inserted by FC2 system