1 YACASL2のインストール *********************** 1 YACASL2のインストール 要件 1.1 YACASL2ファイルのダウンロード 1.2 YACASL2ファイルの検証 1.2.1 GnuPG分離署名での検証 1.2.2 MD5ハッシュ値での検証 1.3 YACASL2ファイルの展開 1.4 'casl2' 'comet2' 'dumpword'のビルド 1.5 'casl2'の実行テスト 1.6 詳細なテスト 1.7 インストール 1.8 環境変数の設定 シェルの確認 1.8.1 'PATH'の設定 1.8.2 'INFOPATH'の設定 1.8.3 'CASL2LIB'の設定 要件 ==== YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在動作を確 認しているのは、Ubuntu LinuxとVine Linux、Mac OS Xです。 インストール時に、'tar' 'gcc' 'make'が必要です。Linuxでは多くの場合、標 準でインストールされています。Mac OS Xの場合、Xcodeの「Command Line Tools」に含まれます。 1.1 YACASL2ファイルのダウンロード ================================= YACASL2のサイト (http://www.j8takagi.net/yacasl2/)から、'tar.gz'または 'tar.xz'ファイルと、対応する検証用ファイルをダウンロードします。githubの ダウンロードページ (http://github.com/j8takagi/YACASL2/downloads/)から 'tar.gz'などのファイルをダウンロードすることもできます。 1.2 YACASL2ファイルの検証 ========================= ダウンロードが完了したら、圧縮ファイルが改竄されていないか検証します。 検証にはGnuPG分離署名か、MD5ハッシュ値を使います。 1.2.1 GnuPG分離署名での検証 --------------------------- GnuPGの'gpg'で圧縮ファイルを検証します。この検証を行うには、GnuPGがイン ストールされ、自分の秘密鍵と公開鍵のペアが作成されている必要があります。 $ gpg --verify yacasl2.tar.xz.asc gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1 gpg: Can't check signature: public key not found $ gpg --recv-keys 25B62DD1 gpg: requesting key 25B62DD1 from hkp server keys.gnupg.net gpg: key 25B62DD1: public key "j8takagi " imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) $ gpg --lsign-key 25B62DD1 pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC trust: unknown validity: full sub 2048R/92E25C29 created: 2012-09-29 expires: never usage: E [ full ] (1). j8takagi pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC trust: unknown validity: full Primary key fingerprint: ... .* <.*@.*> Are you sure that you want to sign this key with your key ".* <.*@.*>" The signature will be marked as non-exportable. Really sign? (y/N) y You need a passphrase to unlock the secret key for user: ".* <.*@.*>" 2048-bit RSA key, ID ........, created 20..-..-.. password $ gpg --verify yacasl2.tar.xz.asc gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1 gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 4 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: depth: 1 valid: 4 signed: 0 trust: 4-, 0q, 0n, 0m, 0f, 0u gpg: Good signature from "j8takagi " 1.2.2 MD5ハッシュ値での検証 --------------------------- 'openssl'と'diff'で圧縮ファイルを検証します。 $ openssl md5 yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum - Files yacasl2.tar.gz.md5sum and - are identical 1.3 YACASL2ファイルの展開 ========================= YACASL2ファイルをダウンロードしたら、'tar'コマンドで展開します。 $ tar xvzf yacasl2.tar.gz 1.4 'casl2' 'comet2' 'dumpword'のビルド ======================================= 展開したら、'make'コマンドで'casl2' 'comet2' 'dumpword'をビルドします。 $ cd yacasl2 $ make make -C src make[1]: Entering directory ‘/home/kazubito/yacasl2/src’ gcc -c -g -Wall -I ../include casl2.c gcc -c -g -Wall -I ../include word.c gcc -c -g -Wall -I ../include hash.c gcc -c -g -Wall -I ../include cerr.c gcc -c -g -Wall -I ../include struct.c gcc -c -g -Wall -I ../include cmd.c gcc -c -g -Wall -I ../include assemble.c gcc -c -g -Wall -I ../include token.c gcc -c -g -Wall -I ../include label.c gcc -c -g -Wall -I ../include macro.c gcc -c -g -Wall -I ../include exec.c gcc -c -g -Wall -I ../include dump.c gcc -g -Wall -I ../include -o ../casl2 casl2.o word.o hash.o cerr.o st ruct.o cmd.o assemble.o token.o label.o macro.o exec.o dump.o gcc -c -g -Wall -I ../include comet2.c gcc -g -Wall -I ../include -o ../comet2 comet2.o word.o hash.o cerr.o struct.o cmd.o exec.o dump.o gcc -c -g -Wall -I ../include dumpword.c gcc -g -Wall -I ../include -o ../dumpword dumpword.o word.o cerr.o make[1]: Leaving directory ‘/home/kazubito/yacasl2/src’ 1.5 'casl2'の実行テスト ======================= ビルドしたら、次のコマンドが正常に実行できるかを確認します。 正常に実行 された場合は、「Hello, World!」と表示されます。 $ ./casl2 as/hello.casl Hello, World! 1.6 詳細なテスト ================ 'make check'コマンドを実行すると、正常にビルドできているかどうかを詳細 にテストできます。 テストには、しばらく時間がかかります。 $ make check 195 / 195 tests passed. Details in /home/username/yacasl2/test/integra tion/casl2/Test.log All tests are succeded. 149 / 149 tests passed. Details in /home/username/yacasl2/test/integra tion/comet2/Test.log All tests are succeded. 4 / 4 tests passed. Details in /home/username/yacasl2/test/integration /dumpword/Test.log All tests are succeded. 1.7 インストール ================ ビルドが成功したら、'make install'コマンドで必要なファイルをインストー ルできます。 初期設定では、ホームディレクトリー以下にYACASL2のファイルが インストールされます。 $ make install コマンド実行時にオプションを指定することで、インストール先のディレクト リーを変更できます。 例えば、'/usr/local'以下にファイルをインストールす るには、 次のようにコマンドを実行します。 $ sudo make install prefix=/usr/local オプションの詳細は次のとおりです。 オプション 説明 初期設定 --------------------------------------------------------------------------- PREFIX インストール時のルートファイル '~' BINDIR 実行ファイルのインストール先 '$prefix/bin' INFODIR infoファイルのインストール先 '$prefix/info' CASL2LIBDIR CASL II ライブラリファイルのインス '$prefix/lib/yacasl2' トール先 1.8 環境変数の設定 ================== 環境変数'PATH'や'CASL2LIB'を設定することで、YACASL2が使いやすくなります 。環境変数は、使っているシェルを確認してから設定します。 シェルの確認 ------------ 環境変数の設定方法は使っているシェルによって異なります。シェルは、次の コマンドで確認できます。 $ echo $SHELL /bin/bash 現在もっとも多く使われているシェルは、BASHでしょう。以下、BASHでの設定 方法を説明します。 1.8.1 'PATH'の設定 ------------------ 'PATH'にYACASL2の実行ファイルのインストール先を追加すると、ディレクトリ ーの指定を省略して'casl2' 'comet2' 'dumpword'を実行できます。例えば、初 期設定のまま実行ファイルを'~/bin'にインストールしたときは、次のコマンド で設定できます。 $ PATH=$PATH:~/bin && export PATH 環境変数の設定は、シェルの初期設定ファイルに追加することでログインした あと自動的に反映されるようになります。BASHでは'~/.bashrc'が初期設定ファ イルです。次のコマンドで追加できます。 $ echo ’PATH=$PATH:~/bin && export PATH’ >>~/.bashrc 1.8.2 'INFOPATH'の設定 ---------------------- 'INFOPATH'にYACASL2のInfoファイルをインストールしたディレクトリーを追加 すると、ディレクトリーの指定を省略して'casl2' 'comet2' 'dumpword'を実行 できます。例えば、初期設定のままInfoファイルを'~/share/info'にインストー ルしたときは、次のコマンドで設定できます。 $ INFOPATH=$INFOPATH:~/share && export INFOPATH '~/.bashrc'には次のコマンドで追加できます。 $ echo 'INFOPATH=$INFOPATH:~/share/info && export INFOPATH' >>~/.bashrc 1.8.3 'CASL2LIB'の設定 ---------------------- 環境変数'CASL2LIB'を設定しておけば、CASL IIプログラム作成時に共通ライブ ラリを呼び出す手間が小さくなります。例えば、CASL2LIBを '~/yacasl2/casl2lib'にインストールしたときは、次のコマンドで設定できます 。 $ CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB '~/.bashrc'には次のコマンドで追加できます。 $ echo 'CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB' >>~/.bashrc