root/doc/install.txt

/* [<][>][^][v][top][bottom][index][help] */
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


/* [<][>][^][v][top][bottom][index][help] */