1b. インストール(Linux)
Mind Version 8 はフリーソフトです。個人用途・商用を問わずご自由にお使いいただけます。詳しいライセンス条件については、README.txt をお読み願います。
パッケージの解凍
パッケージ名
Linux版のMindのパッケージは以下のようなファイル名になっています。
mind-for-linux-8.0.00.tgz (末尾2桁の数字は改訂によって00〜99の範囲となる)
パッケージの解凍
アーカイブファイルはトップディレクトリに pmind/ を含むため、解凍すると pmind/ というディレクトリ込みで生成されます。
ホームディレクトリ(たとえば /home/foo )直下で解凍しても構いません。その場合、
/home/foo/pmind 以下としてに生成されます。
解凍した位置のままインストール作業無しでお使いいただけます。不要になったらフォルダごと削除してください。
(操作例: 一般ユーザ権限で)
$ cd
∼
$ tar xzpf mind-for-linux-8.0.00.tgz
tarに p オプションを指定していますが、cgilibディレクトリ内に1箇所だけ バーミッション 777 が必要な箇所があるため必要です
Mindの標準プログラムが pmind ディレクトリ外に何らかのファイルを生成することはありません。不要になったら pmind フォルダごと削除するだけで痕跡を残さず消せます。
バイナリが作動するか確認
解凍先の pmind/ ディレクトリに入り、試しに以下のようにMindコンパイラを起動してみてください。
(操作例: 一般ユーザ権限で)
$ cd ∼/pmind
[pmind]$ bin/mind
日本語プログラミング言語 Mind Version 8.0 for UNIX
Copyright(C) 1985 Scripts Lab. Inc.
Usage(1): mind -help (オプション詳細を表示)
Usage(1): mind source library [objectdir/][objfile]
[pmind]$
上記のようなメッセージが表示されれば、パッケージに含まれるバイナリ群はお使いのOSでそのまま動作することになります。
・何かエラーメッセージが表示された場合は、この先の「パッケージ内のバイナリについて」というセクションをお読みください
・日本語が文字化けを起こしている場合は、この先の「文字コード」というセクションをお読みください
Mindを使うための環境設定
文字コード
Mindプログラムのソースコード、Mindコンパイラをはじめとする関連プログラム、およびそれによって作成されたアプリケーションが日本語を入出力する場合の文字コードは
euc-jp です。お使いのOSのロケールおよびターミナルの文字種をそれに合わせてからお使いください。
ロケール設定は以下のスクリプトを参考にしてください。(弊社では前者を ~/.bash_profile 末尾に設定しています)
───────────────────────── シェルがbashの場合
export LANG=ja_JP.eucJP
export JLESSCHARSET=japanese
─────────────────────────
───────────────────────── シェルがcshの場合
setenv LANG ja_JP.eucJP
setenv JLESSCHARSET japanese
─────────────────────────
パッケージ内のバイナリについて
パッケージ内実行ファイルは CentOS 5 / x86(Littleエンディアン) でコンパイルした実行ファイルが入っています。この前後の x86, Linux系OS であればmakeすることなくこのまま使えるはずです。
このほかに弊社では CentOS 7、Red Hat Enterprise Linux 5.2(64bit)、Turbolinux Appliance Server 3.0(64bit) で動作確認済みです。
64bitOSでも32bitOSでもお使いいただけます。64bitOS環境下であっても32bitのコードで動作します。
たとえばMindコンパイラである pmind/bin/mind を単純起動してコンパイラ名などのメッセージが表示されない、あるいは何らかのエラーメッセージが表示される場合には、Mindのカーネル(pmind/kernel/)のみをmakeし直せば使えるようになります。BigエンディアンのCPUのマシンについても同様です。
弊社確認では、Turbolinux Appliance Server 4 ではMindカーネルのmakeが必要でした。
Mindカーネルのmake方法(もし必要なら)
まず、Linuxに開発環境(binutils、gcc、makeなど)がインストールされている必要があります。
なお64bitOSの場合、gccがインストール済みであったとしても、さらに以下を確認願います。
[gcc関連のパッケージ確認1]
64bitOSの場合、glibc.i386〜glibc.i686 のいずれかが(glibc.x86_64 ではなく)インストール済みであるか確認し、無ければインストールしてください(これが無いと、ヘッダファイル不足で、make時に stubs.h が無いなどのエラーが出ます)。
$ yum list installed glibc ←インストール済みであるか確認
[gcc関連のパッケージ確認2]
64bitOSの場合、libgcc.i386〜libgcc.i686 のいずれかが(libgcc.x86_64 ではなく)インストール済みであるか確認し、無ければインストールしてください。
$ yum list installed libgcc ←インストール済みであるか確認
次に
kernel/ ディレクトリ内で以下の手順でmakeしてください。操作権限はrootではなくMindをインストールしたときの一般ユーザ権限で構いません。
$ make clean
$ make all
$ make install
上記の make install によってOSグローバルな場所にファイルが複写されることはなく、すべてpmind/bin/ に(カーネルから見ると ../bin に)入るので安全です。
Cygwin環境でも使えます。その場合は、kernel/makefile の CYGWIN=
FALSE の箇所を
TRUE に書き換えてから、前記の通りmakeしなおしてください。
CPUやOSが異なるなどにより、パッケージ内蔵のバイナリがそのまま使えない場合であっても、Mindで書かれたアプリケーション(MindコンパイラをはじめとするMind記述ツールも含め)は再コンパイルの必要はなく、カーネルと呼ぶC言語で書かれた小さなプログラム(ランタイム)のみをmakeするだけで済みます。Mindコンパイラが生成するオブジェクトコード(拡張子.mcoのファイル)はCPU(Big/Littleエンディアンも含め)やOSに依存しません。
コンソールから最初に行うこと
pmind/ 内にカレントディレクトリを移してシェルのsourceファイルである usemind を実行します。これによりMindの開発に必要な環境変数その他が設定されます。(注: ピリオド+空白+usemind です)
[シェルがbashの場合]
[pmind]$ . usemind
Mindの開発環境を設定しました。
[pmind]$
注: ピリオドのあとに空白1つ ( ./usemind ではありません )
cshの場合は以下を参考にしてください。(注1:cshでは '.'コマンド が使えないので source コマンドでスクリプトを読み込みます)(注2: csh用スクリプトは usemind ではなく usemind
c です)
[シェルがcshの場合]
[pmind]$ source usemindc
Mindの開発環境を設定しました。
[pmind]$
上記でMindの各種ツールが使える状態になりました。
旧Mindも使われてる方へ
旧Mindをインストールしたまま新Mindを使えます。バッチ usemind を実行したとき、もし旧版MindへのPATHを含む場合には両者をマージして設定するようになっています。(新版のパスが優先します)
なお、MLIBPATH は旧版の変数名が M7LIBPATH であるため競合しません。
環境変数の設定
上記ので示した usemind を実行する方法では、今開いているターミナルウィンドウでのみ有効な設定であるため、次回ログインあるいは複数のターミナルを開く場合はその都度 usemind を実行する必要があります。
毎回 usemind を実行する手間を省きたい場合には、ホームディレクトリのトップにあるシェルの初期化スクリプト(たとえば ~/.bash_profile)に以下を参考にしてスクリプトを追加して環境変数を登録してください。
───────────────────────────────── シェルがbashの場合
export PATH="$PATH:/home/foo/pmind/bin"
export MLIBPATH="/home/foo/pmind/lib"
─────────────────────────────────
───────────────────────────────── シェルがcshの場合
setenv PATH "$PATH:/home/foo/pmind/bin"
setenv MLIBPATH "/home/foo/pmind/lib"
─────────────────────────────────
(注:/home/foo の箇所は実際のホームディレクトリに読み替えてください)
上記が、Mindを使う上で必要な環境変数となります。