1 要件
2 インストールの手順
2.1 YACASL2ファイルのダウンロード
2.2 YACASL2ファイルの検証
2.2.1 GnuPG分離署名での検証
2.2.2 MD5ハッシュ値での検証
2.3 YACASL2ファイルの展開
2.4 ビルド
2.5 'casl2'の実行テスト
2.6 詳細なテスト
2.7 インストール
2.8 環境変数の設定
2.8.1 'PATH'の設定
2.8.2 'INFOPATH'の設定
1 要件
******
YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在動作を確
認しているのは、Arch LinuxとUbuntu Linux、Mac OS Xです。
インストール時に、'tar' 'gcc' 'make'が必要です。Linuxでは多くの場合、標
準でインストールされています。Mac OS Xの場合、Xcodeの「Command Line
Tools」に含まれます。
2 インストールの手順
********************
2.1 YACASL2ファイルのダウンロード
=================================
YACASL2のサイト (http://www.j8takagi.net/yacasl2/)から、'tar.gz'または
'tar.xz'ファイルと、対応する検証用ファイルをダウンロードします。githubの
ダウンロードページ (http://github.com/j8takagi/YACASL2/downloads/)から
'tar.gz'などのファイルをダウンロードすることもできます。
2.2 YACASL2ファイルの検証
=========================
ダウンロードが完了したら、圧縮ファイルが改竄されていないか検証します。
検証には、GnuPG分離署名か、MD5ハッシュ値を使います。
2.2.1 GnuPG分離署名での検証
---------------------------
GnuPGの'gpg'で圧縮ファイルを検証します。この検証を行うには、GnuPGがイン
ストールされ、自分用の秘密鍵が作成されている必要があります。 また、あら
かじめ'tar.gz'または'tar.xz'ファイルと、対応する検証用ファイル
'tar.gz.asc'または'tar.xz.asc'ファイルを同じディレクトリーに保存し、その
ディレクトリーに移動しておきます。
次の手順では'gpg --verify'による検証を2回実行させています。1回目では検
証に失敗する一方で、必要な鍵などの情報を得ています。その鍵を'gpg
--recv-keys'で取得し、'gpg --lsign-key'でローカル署名した後、再度'gpg
--verify'による検証を行い、成功させています。
$ ls yacasl2.tar.gz*
yacasl2.tar.gz yacasl2.tar.gz.asc
$ gpg --verify yacasl2.tar.xz.asc
gpg: assuming signed data in 'yacasl2.tar.gz'
gpg: Signature made Tue 02 Jun 2026 01:14:17 AM JST
gpg: using EDDSA key 77EC282A2F7317EBFF7BFD067F593ED86D88E1D5
gpg: Can't check signature: No public key
$ gpg --recv-keys 77EC282A2F7317EBFF7BFD067F593ED86D88E1D5
gpg: key 7F593ED86D88E1D5: public key "j8takagi <j8takagi@nifty.com>" imported
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2029-06-01
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --lsign-key 77EC282A2F7317EBFF7BFD067F593ED86D88E1D5
pub ed25519/7F593ED86D88E1D5
created: 2026-04-23 expires: 2031-04-30 usage: SC
trust: unknown validity: unknown
sub cv25519/B3433115DBD37726
created: 2026-04-23 expires: never usage: E
[ unknown] (1). j8takagi <j8takagi@nifty.com>
pub ed25519/7F593ED86D88E1D5
created: 2026-04-23 expires: 2031-04-30 usage: SC
trust: unknown validity: unknown
Primary key fingerprint: 77EC 282A 2F73 17EB FF7B FD06 7F59 3ED8 6D88 E1D5
j8takagi <j8takagi@nifty.com>
This key is due to expire on 2031-04-30.
Are you sure that you want to sign this key with your
key "j8takagi <j8takagi@nifty.com>" (4223493EBCB683A9)
The signature will be marked as non-exportable.
Really sign? (y/N) y
$ gpg --verify yacasl2.tar.gz.asc
gpg: assuming signed data in 'yacasl2.tar.gz'
gpg: Signature made Tue 02 Jun 2026 01:14:17 AM JST
gpg: using EDDSA key 77EC282A2F7317EBFF7BFD067F593ED86D88E1D5
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 1 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1 valid: 1 signed: 0 trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2029-06-01
gpg: Good signature from "j8takagi <j8takagi@nifty.com>" [full]
gpg: Signature notation: manu=2,2.5+1.12,0,3
2.2.2 MD5ハッシュ値での検証
---------------------------
'openssl'で圧縮ファイルから生成したMD5ハッシュ値が、ダウンロードした
'yacasl2.tar.gz.md5sum'ファイルの内容と同じかどうか'diff'で検証します。
$ openssl md5 yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -
Files yacasl2.tar.gz.md5sum and - are identical
2.3 YACASL2ファイルの展開
=========================
YACASL2ファイルをダウンロードしたら、'tar'コマンドで展開します。
$ tar xvzf yacasl2.tar.gz
2.4 ビルド
==========
展開したら、'make'コマンドを実行してビルドします。 YACASL2のコマンド実
行ファイルである'casl2' 'comet2' 'dumpword' 'casl2rev' 'comet2monitor'が
生成されます。
$ cd yacasl2
$ make
make -C src
make[1]: Entering directory ‘/home/username/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/username/yacasl2/src’
2.5 'casl2'の実行テスト
=======================
ビルドしたら、次のコマンドが正常に実行できるかを確認します。 正常に実行
された場合は、「Hello, World!」と表示されます。
$ ./casl2 as/hello.casl
Hello, World!
2.6 詳細なテスト
================
'make check'コマンドを実行すると、正常にビルドできているかどうかを詳細
にテストできます。 テストには、しばらく時間がかかります。
$ make check
195 / 195 tests passed. Details in /home/username/yacasl2/test/integra
tion/casl2/Test.log
All tests are succeeded.
149 / 149 tests passed. Details in /home/username/yacasl2/test/integra
tion/comet2/Test.log
All tests are succeeded.
4 / 4 tests passed. Details in /home/username/yacasl2/test/integration
/dumpword/Test.log
All tests are succeeded.
2.7 インストール
================
YACASL2のコマンド実行ファイルはビルド後、'make install'コマンドでインス
トールできます。インストール先は初期設定では、'~/bin'ディレクトリーです
。
$ make install
インストール先を変更するには、'prefix'などのオプションを指定します。 例
えば'/usr/local'ディレクトリーにインストールするには、次のようにコマンド
を実行します。
$ sudo make install prefix=/usr/local
オプションの詳細は次のとおりです。
オプション 説明 初期設定
---------------------------------------------------------------------------
PREFIX インストール時のルートファイル '~'
BINDIR 実行ファイルのインストール先 '$prefix/bin'
INFODIR infoファイルのインストール先 '$prefix/share/info'
2.8 環境変数の設定
==================
環境変数'PATH'や'INFOPATH'を設定することで、YACASL2が使いやすくなります
。
2.8.1 'PATH'の設定
------------------
'PATH'にYACASL2の実行ファイルのインストール先が含まれている場合は、ディ
レクトリーの指定を省略して'casl2'などの実行ファイル名を指定できます。
'PATH'は、次のコマンドで確認できます。
$ echo $PATH
YACASL2のインストール先の初期設定である'~/bin'ディレクトリーは、OSイン
ストール時に'PATH'に含まれている場合もあります。含まれていない場合は、次
のコマンドで'PATH'に追加できます。
$ PATH=$HOME/bin:$PATH; export PATH
'~/.profile'や'~/.bashrc'などの初期化ファイルに'PATH'への追加を設定して
おけば、YACASL2のコマンド実行時に常にディレクトリーの指定を省略できます
。 次は、'PATH'に'~/bin'が二重に追加されることを防ぐ書き方です。
case ":${PATH}:" in
*":${HOME}/bin:"*) ;;
*) export PATH="${HOME}/bin:${PATH}" ;;
esac
2.8.2 'INFOPATH'の設定
----------------------
環境変数'INFOPATH'とInfoが適切に設定されていれば、次のコマンドで
YACASL2のInfoを表示できます。
$ info yacasl2
'INFOPATH'にYACASL2のInfoファイルをインストールしたディレクトリーの追加
は、次のコマンドでできます。なお、YACASL2のInfoファイルインストール先の
初期設定は、'~/share/info'です。
$ INFOPATH=$HOME/share/info:$INFOPATH; export INFOPATH
'~/.profile'や'~/.bashrc'などの初期化ファイルに'INFOPATH'への追加を設定
しておけば、常にYACASL2のInfoを表示できます。 次は、'INFOPATH'に
'~/share/info'が二重に追加されることを防ぐ書き方です。
case ":${INFOPATH}:" in
*":${HOME}/share/info:"*) ;;
*) export INFOPATH="${HOME}/share/info:${INFOPATH}" ;;
esac