-- FreeBSD/pc98 日本語インストーラ作成ツール -- FreeBSD/pc98 6.2-RELEASE 「日本語インストーラ/インストール FD」 を作成するシェル手続き 修正日 平成19年(2007年)01月15日 (月) 作成 小金丸信幸 E-mail kogane@koganemaru.co.jp 1. はじめに FreeBSD/pc98 のインストーラとしては、リリースと同時に配布される インストーラがありますが、英語表示となっています。本説明は FreeBSD/pc98 日本語表示インストーラを作成する手順を記述しています。 2. 用意するファイル 1) FreeBSD/pc98 6.2-RELEASE のインストール用 CD-ROM かその中の src をコピーしたもの。 2) make.98release.tar.gz 従来別ファイルだった patches.tar.gz ファイルは make.98release.tar.gz に含まれています。 3) package ファイル リリース用のドキュメントを作成するために次のパッケージが必要です。 dsssl-docbook-modular-1.79,1 jade-1.2.1_9 links-0.98,1 tidy-20000804_2 dsssl-docbook-modular-1.79,1 は次の依存 package が必要です。 xmlcatmgr-2.2 その他、次の package も必要です。 docbook-1.3 次は依存 package です。 docbook-241_2 docbook-3.0_2 docbook-3.1_2 docbook-4.0_2 docbook-4.1_2 docbook-xml-4.2_1 iso8879-1986_2 日本語のドキュメントを作成するには次の package もインストールして ください。 ja-lynx-2.8.4.rel1 次は依存 package です。 zip-2.3_2 unzip-5.52_1 doc の作成のために最新の perl package が必要です。古い perl を入れ たままにしている場合は新しいものに置き換えてください。 perl の package としては perl-5.6.2_2 perl-5.8.8 があります。 3. make.98release.tar.gz の内容 添付している make.98release.tar.gz には次のファイルが含まれています。 MAKE.Clean.sh 作業ファイルを削除します。 MAKE.PC98.sh MAKE.floppies.sh を呼び出すシェル手続き。 MAKE.del.orig.sh *.orig ファイルを削除するシェル手続き。 MAKE.make.patches.sh を行う前などに実行します。 MAKE.doc.sh リリースドキュメントを作成するシェル手続き。 MAKE.dopatch.sh patch を実行するシェル手続き。 MAKE.floppies.sh kern.flp, mfsroot.flp を作成するシェル手続き。 MAKE.get.src.sh FreeBSDリリースの src ディレクトリからソースファイル 取り出すシェル手続き。 MAKE.objdir.sh obj ディレクトリを作成するシェル手続き。 README 本ファイル。 RelMakeCheck.sh release/Makefile の制御を展開するシェル手続き。 SETVAR 環境変数の設定。 VNmount.sh md の mount を行います。 VNumount.sh md の umount を行います。 bin/pastime 経過時間計測ツール (perl で作成)。 patches.tar.gz ソースにあてるパッチ。 ソースを展開するディレクトリを /usr/src となるように設定してください。 もし既に /usr/src が存在するなら一時的に名前を変更します。 # mv /usr/src /usr/src.org 現在のディレクトリを /usr/src となるように設定します。 # ln -s `pwd` /usr/src /usr/obj/usr/src ディレクトリが存在する場合も問題となります。 名前を変更しておいてください。詳細は後述。 ソースを展開するディレクトリ下に作業用ディレクトリを作成し、 上記のコマンドコピーします。例: mkdir /usr/src/makerel 一般ユーザでは作成できません。root (スーパーユーザ)で実行してくだ さい。 o 最短の場合 SETVAR 3行を修正 MAKE.get.src.sh MAKE.dopatch.sh MAKE.objdir.sh MAKE.del.orig.sh MAKE.make.patches.sh MAKE.floppies.sh を順番に実行するだけで作成できます。 リリースの変更がある場合はソースファイルを変更した後、 MAKE.make.patches.sh MAKE.floppies.sh を実行すれば新しいリリースが作成できます。 安全のために PATH に . を含めていないならば、./MAKE.get.src.sh のよ うにシェル手続きの前に ./ をつけてください。 4. 必要なディスク容量 リリース用バイナリを作成する場合: ・ソースファイルが展開されるカレントディレクトリは 290M バイト, ・/usr/obj は 13M バイト ・出力ファイルが置かれるディレクトリ(/R) は 64M バイト 合計、367M バイト以上必要です。 /usr ファイルシステムの容量が少ない場合は他のファイルシステムにシン ボリックリンクを張るとよいでしょう。 例: ln -s /otherdisk/obj /usr/obj 出力ファイルが置かれる /R ディレクトリの容量が少ない場合も他のファ イルシステムにシンボリックリンクを張るとよいでしょう。 例: ln -s /otherdisk/R /R 5. ファイルを適当なディレクトリに mount します。 # mount_cd9660 /dev/acd0 /cdrom ディスクにコピーしてあれば、必要ありません。 6. MAKE.get.src.sh の実行 添付している SETVAR の MD= の部分をリリースディレクトリにエディタで 修正してください。6.2-RELEASE ディレクトリがない場合は SRC= の部分も 修正します。 SETVAR ファイルは他のシェル手続きで参照されます。 4.X-RELEASE は出力ディレクトリの(RELEASEDIR=で)指定ができましたが、 現在は /R 固定です。 使用者が変更するのは MD=(又は SRC=)、ORIGMAKE= と MAKE_FIXIT= 部分 のみです。ただし、/ (ルート) ファイルシステムに余裕がない場合 sort コマンドが /tmp を使用してファイルシステムフルのエラーになる場合が ります。/tmp に余裕がない場合は TMPDIR= を設定してください。 ----- SETVAR ファイルの1部分 ----- # リリースファイルのマウントディレクトリ MD=/cdrom SRC=$MD/6.2-RELEASE/src # cvsup のソースからリリーズ用バイナリ/インストール FD を作成する場合 # のソースを置くディレクトリ名 #CVSDIR=/usr/src.releng52 CVSDIR= # 出力ディレクトリの指定 (十分大きなファイルシステムを指定してください) #RELEASEDIR=/var/98release # fixit.flp を作成する場合は MAKE_FIXIT=YES とする MAKE_FIXIT= # orig ディレクトリを作成するかどうかのフラグ # patch を作成する場合は ORIGMAKE=ON としてください。 ORIGMAKE=ON # sort が使用するテンポラリディレクトリ export TMPDIR=/var/tmp ----- SETVAR ファイルの1部分 終り ----- 「FreeBSD(98) リリース作成ツール」のコマンド群は通常 /usr/src/makerel 等の(/usr/src の一つ下の)ディレクトリを作成して、 その位置で実行します。 ソースを展開するディレクトリの一つ下のディレクトリ (/usr/src/makerel 等)で MAKE.get.src.sh を実行します。 MAKE.get.src.sh は FreeBSDリリースの src ディレクトリからソースフ ァイル取り出すシェル手続きです。 # MAKE.get.src.sh ソースを取り出したかどうかは done/get.xxx というファイルで識別され ます。ソースファイルを取り出すのが不足した場合は MAKE.get.src.sh の該当部分を修正した後 done/get.xxx を削除した後、もう一度 MAKE.get.src.sh を実行すれば該当する部分のみ再び取り出すことができ ます。 7. パッチの実行 FreeBSD 6.2-RELEASE から変更のある差分のパッチを当てます。 # MAKE.dopatch.sh MAKE.dopatch.sh は patches.tar.gz ファイルを読み込みソースにパッチ を当てます。 ※だだし、新規に FreeBSD(98) のリリースを作成する場合は patch ファイ ルはありませんので、 # MAKE.dopatch.sh -s でパッチはスキップします。 8. obj ディレクトリの作成 MAKE.get.src.sh, MAKE.dopatch.sh が正常に終ったなら、 MAKE.objdir.sh を実行します。 # MAKE.objdir.sh を実行します。/usr/obj の下を消してしまった後などに、再び実行する場 合もあります。 カレントディレクトリが /usr/src ではない時、/usr/obj/usr/src が既に 存在する場合、 「/usr/obj/usr/src が存在します. /usr/obj/usr/src を消すか名前を変更 してから実行してください.」 とエラーとなりますので、 cd /usr/obj/usr ; mv src src.old を行って再び MAKE.objdir.sh を実行してください。 9. /etc/make.conf の設定 /etc/make.conf を設定してください。次は FreeBSD(98) を作成する際に 使用しているフィルです。 /etc/make.conf が正しく設定されていないと、インストーラのオブジェクト コードが大きくなり、フロッピーディスクイメージに入り切れなくなります。 次の NO_CPU_CFLAGS, NO_CPU_COPTFLAGS フラグが重要です。 ---- ここから ---- # # $Id: make.conf,v 1.2 2002/10/28 07:00:53 nyan Exp $ # USA_RESIDENT=NO WITHOUT_X11=YES NO_CPU_CFLAGS=true NO_CPU_COPTFLAGS=true ---- ここまで ---- 10. patch ファイルの作成 FreeBSD(98) のリリース用 patche ファイルを作成する場合に実行します。 リリース用のプログラムを変更する場合はこの前にソースファイルの変更を 行います。プログラムを追加する等の大きな変更の場合は同時に release/Makefile を修正しなければなりません。 パッチを当てた後に *.orig ファイルが残っている場合があります。 # MAKE.del.orig.sh で *.orig ファイルを削除してください。 # MAKE.del.orig.sh -p *.orig ファイルがあれば表示されます。 # MAKE.del.orig.sh *.orig ファイルが削除されます。 # MAKE.make.patches.sh を実行してください。 patche ディレクトリとその下に patche ファイルが作成されます。 11. リリース用のブートフロッピーイメージファイルの作成 リリース用のブートフロッピーイメージファイル (kern.flp, mfsroot.flp 等) を作成するために、 # MAKE.floppies.sh を実行します。 /R/stage/floppies に boot-small.flp, boot.flp, kern-small1.flp, kern-small2.flp, kern1.flp, kern1.flp, mfsroot-small1.flp, mfsroot1.flp ブートフロッピーイメージファイルが出来上がります。 SETVAR ファイルで MAKE_FIXIT=YES の場合は fixit-small.flp, fixit.flp も作成されます。 MAKE.floppies.sh の代わりに MAKE.PC98.sh を使用すると、画面に表示 されるメッセージが ERRPC98.mmdd.xx というファイルに出力されます。 mmdd は月日、xx は 01 から順番にカウントアップされます。 # MAKE.PC98.sh または # MAKE.PC98.sh & # tail -f ERRPC98.mmdd.xx エラーが生じた場合はメッセージの内容を参考にして、解決してください。 再実行する場合は cd /usr/src/release ; make clean を行えばよいでし ょう。 12. 日本語リリースドキュメントの作成 ドキュメントの作成時に /usr/doc を参照します。インストール時に doc をインストールするか、cvsup で cvs を取得してください。 # MAKE.doc.sh を実行します。 /R/stage/release.doc/ja_JP.eucJP/*/article.txt に日本語のドキュメ ント /R/stage/release.doc/en_US.ISO8859-1/*/article.txt に英文のド キュメントが作成されます。 13. 作業ファイルの削除 # MAKE.Clean.sh 使用法: MAKE.Clean.sh [-s] [-o] [-r] [-g] [-a] -s ソースファイルを削除 -o /usr/obj 以下を削除 -r release 出力ファイルを削除 -g orig ソースファイルを削除 -a 上記のファイル全て削除 14. その他のシェル手続き 使用法: VNmount.sh [-r] boot_flp_file_image [/mnt] boot_flp_file_image を /mnt にマウントする。 -r リードオンリーでマウントする VNmount.sh -u [/mnt] VNmount.sh で [/mnt] にマウントしたファイル システムを umount する。 VNumount.sh [/mnt] VNmount.sh で [/mnt] にマウントしたファイル システムを umount する。 ・VNmount.sh md の mount を行います。 /R/stage/mfsroot の下に作成される mfsroot.gz (gunzip で拡張してか ら VNmount.sh を実行してください)ファイルや kern.flp, mfsroot.flp の中を見る時に使用します。umount は下記の VNumount.sh を使用します。 実行すると /mnt にマウントされます。指定すれば他のディレクトリにも マウントできます。/mnt が他のマウントに使われていないか確認した後 実行してください。-r オプションをつけるとリードオンリーでマウント されますので、イメージファイルの内容や作成日付が変更されません。 使用例: # VNmount.sh mfsroot.flp /mnt # df -i または # VNmount.sh -r kern.flp # ls -l /mnt ・VNumount.sh md の umount を行います。 # VNumount.sh または # VNumount.sh /mnt マウントした時点の md デバイス名を保存するため /tmp/MDDEV という作 業ファイルを使用します。 15. 改版履歴 1) FreeBSD(98) 2.2.2R の「boot.flp / リリース用バイナリ」を作成するシェ ル手続き 作成日 平成9年(1997年)09月21日 (日) 2) FreeBSD(98) 2.2.5R の「リリース用バイナリ/boot.flp」を作成するシェル 手続き 作成日 平成9年(1997年)12月01日 (月) 修正日 平成9年(1997年)12月02日 (火) 3) FreeBSD(98) 2.2.6R の「リリース用バイナリ/boot.flp」を作成するシェル 手続き 作成日 平成10年(1998年)03月31日 (火) 修正日 平成10年(1998年)04月02日 (木) 「PAO 用 boot.pao.flp の作成」, 「その他のシェル手続き」を追加。 4) FreeBSD(98) 2.2.7R の「リリース用バイナリ/boot.flp」を作成するシェル 手続き 修正日 平成10年(1998年)07月26日 (日) 5) FreeBSD(98) 3.0R の「リリース用バイナリ/boot.flp」を作成するシェル手 続き 修正日 平成10年(1998年)10月27日 (火) 6) FreeBSD(98) 2.2.8R の「リリース用バイナリ/boot.flp」を作成するシェル 手続き 修正日 平成10年(1998年)12月03日 (木) 7) FreeBSD(98) 3.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成11年(1999年)03月06日 (土) 8) FreeBSD(98) 3.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成11年(1999年)05月20日 (木) 9) FreeBSD(98) 3.3R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成11年(1999年)09月20日 (月) 10) FreeBSD(98) 3.4R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成11年(1999年)12月22日 (水) 11) FreeBSD(98) 4.1.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を 作成するシェル手続き 修正日 平成12年(2000年)10月14日 (土) 12) FreeBSD(98) 4.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成12年(2000年)11月24日 (金) 13) FreeBSD(98) 4.3R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成13年(2001年)05月05日 (土) FreeBSD 2.2.5R 以前の日本語化された sgmlfmt, sgmls を使用して いましたが、これを packages を使用するように変更しました。 14) FreeBSD(98) 4.4R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成13年(2001年)08月14日 (火) 15) FreeBSD(98) 4.5R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成14年(2002年)02月05日 (火) 16) FreeBSD(98) 4.6R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成14年(2002年)06月13日 (木) 17) MAKE.boot.flp の説明と shell 手続きを修正 修正日 平成14年(2002年)07月09日 (火) 18) 「インストール MO ファイルの作成」の説明追加 修正日 平成14年(2002年)07月16日 (火) 19) FreeBSD(98) 4.6.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成14年(2002年)08月16日 (金) 20) FreeBSD(98) 4.7R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成14年(2002年)09月12日 (木) 21) FreeBSD(98) 4.8R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成15年(2003年)04月01日 (火) CVSDIR の説明追加。 22) FreeBSD(98) 5.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成15年(2003年)06月03日 (火) 23) FreeBSD(98) 5.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成15年(2003年)12月15日 (月) 24) patches.tar.gz を make.98release.tar.gz に含めた。 修正日 平成16年(2004年)01月16日 (金) 25) FreeBSD(98) 5.2.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作 成するシェル手続き 修正日 平成16年(2004年)02月09日 (月) 26) FreeBSD(98) 5.3R の「リリース用バイナリ/インストール FD」を作成す るシェル手続き 修正日 平成16年(2004年)09月14日 (火) 27) FreeBSD(98) 5.4R の「リリース用バイナリ/インストール FD」を作成す るシェル手続き 修正日 平成17年(2005年)04月13日 (水) 28) FreeBSD(98) 6.0R の「リリース用バイナリ/インストール FD」を作成す るシェル手続き 修正日 平成17年(2005年)12月28日 (水) 29) FreeBSD/pc98 6.1-RELEASE 「日本語インストーラ/インストール FD」 るシェル手続き 修正日 平成18年(2006年)05月29日 (月) 30) FreeBSD/pc98 6.2-RELEASE 「日本語インストーラ/インストール FD」 るシェル手続き 修正日 平成19年(2007年)01月15日 (月) 以上.