マックと一般的な UNIX のファイル構造は、かなり違います。このために、 CodeBuilder は、いくつかの仕掛けを持ち、また、コマンド(プログラム)も 用意されています。
CodeBuilder は、マックのファイル・システムの上に、独自のファイル・システム "FFS" のディスク・イメージを置いて、その中で動きます。
マックのファイル・システムの名前: HFS; Hierachy(?) File System CodeBuilder のファイル・システムの名前: FFS; Fast File System
CodeBuilder では mount コマンドによって、マックのボリューム(ディスク パーティション)を共有できるようになります。つまり、マック側のファイル を読み書きできます。いくつかのボリュームは、起動時に自動的にマウント されます。
ディレクトリ 内容 ------------ ------------------------------------------------------ / ルート・ディレクトリ(ファイル "CodeBuilder_FFS" を指す) // CodeBuilder がインストールされているボリューム /bootvol MacOS の起動ボリューム /usr/X11R6 X-Window ディレクトリ(ファイル "X11R6_FFS" を指す)逆にマック側からは、CodeBuilder の FFS にはアクセスできないようです。
別に、CD-ROM 、フロッピー、MO、zip 等のメディアも扱えます。
マックのファイルを FFS 内にコピーすると、データ・フォークとリソース・ フォークをひとまとめにした、 AppleSingle 形式のファイルになります。 これからデータ・フォークだけを取り出したりするコマンド群が用意されて います。
CodeBuilder で FFS 内で作ったファイルを、マック側にコピーすると、 クリエータ: MUMM、タイプ: BINA のリソース情報がひっつきます。
それがテキスト・ファイルなら、 mactext コマンドで「共通テキスト形式」に 変換できます。それはタイプ: TEXT で、マック形式の改行コードになります。 CodeBuilder からこのファイルを見ると、 UNIX 形式の改行コードに自動変換 されます。
% cd unix_dir UNIX 側の作業ディレクトリへ % cp /mac_volume/filename.tar.gz . % dfork -i filename.tar.gz (他にも方法はありますが) % tar tzvf filename.tar.gz ファイル一覧。 CTRL-C で中断可 % tar xzvf filename.tar.gz ファイル展開 % cd filename そのソフトのディレクトリへ README とか INSTALL とかを読む。 xmkmf とか ./configure とか make とか... % su スーパーユーザになる # make install インストール # exit 一般人に戻る % _
% cp filename /mac_volume/ マックのボリューム内にコピー % cd /mac_volume % mactext filename 改行コード変換、リソース情報付加。注意! mactext コマンドは、マックのボリューム内でしか有効に働きません。 mactext は、シェル・スクリプトです。
% cd /mac_volume % finderinfo -C MUMM filename % sync注意!finderinfo コマンドもマックのボリューム内でしか有効に働きません。 注意! マックと CodeBuilder をいったりきたりするときには、ファイル・ システムの一貫性を保つため、こまめに sync しましょう。
筆者は、タイプ量を減らすため .cshrc に下記の様な alias 設定を追加しました。
# # Kimura # alias fi 'finderinfo -b \!*' alias ft 'finderinfo -T TEXT -C MUMM \!*; sync' alias fb 'finderinfo -T BINA -C MUMM \!*; sync' alias mact 'mactext \!*; sync'
% finderinfo /mac_volume/filename マックのファイルの属性を調べる。注意! finderinfo コマンドでは、クリエータが MUMM のファイルには、ファ イル・タイプは TEXT あるいは BINA しか指定できません。その他のタイプを 指定しても無視されます(エラー・メッセージは表示されません)。% finderinfo -T TEXT /mac_volume/filename マックのテキストファイルを、 % finderinfo -C MUMM /mac_volume/filename 共通テキスト形式に変換。 % sync
% finderinfo -C MUMM -T TEXT /mac_volume/filename 一度にやってもよい。 % sync
% finderinfo -T BINA /mac_volume/filename マックのバイナリ・ファイルを、 % finderinfo -C MUMM /mac_volume/filename UNIX でもリソースを無視して % sync 扱えるようにする。
% cd unix_dir FFS 上で... % dfork /mac_volume/filename filename.dat データ・フォークだけ、 FFS 上にコピーする。% dfork -i filename_from_mac マック側からコピーしてきた( AppleSingle 形式の)ファイルから リソース情報を切り捨てる。
% dfork.text /mac_volume/filename | grep UNIX テキスト・データを取り出す。
% rfork /mac_volume/filename filename.res リソース・フォークだけ、 FFS 上にコピーする。
% rfork -i filename リソース情報だけにする。
% mactext /mac_volume/file_from_unix 共通テキスト形式にする。 ( FFS 内では無効)
% unixtext /mac_volume/file_on_mac
% man restool リソース情報を操作する restool のオンライン・ マニュアルを表示する :-)
% su (スーパーユーザのパスワード入力) # mkdir /mac_volume # mount "Macintosh HD" /mac_volume マックのボリュームのマウント
コマンド・ラインでサクサク作業するには、編集機能を持ったシェルが 必需品です。ここでは筆者がどの UNIX 環境でも(なければ make して)愛用 している tcsh を中心に説明します。
CodeBuilder には、4 種類のシェルがあらかじめ含まれています。ログイン・ シェルとして使うには /etc/shells ファイルに登録されている必要があります。
% cat /etc/shells ← /etc/shells の内容は... # # List of acceptable shells for chsh/passwd -s # /bin/bash ← B-shell 系 GNU 謹製高性能シェル /bin/sh ← B-shell そのもの /bin/csh ← C-shell そのもの /bin/tcsh ← C-shell 系高性能シェルスーパー・ユーザ( root )が vipw コマンドで編集するパスワード・ファイル に、各ユーザのログイン・シェルの設定があります。スーパー・ユーザでなくて も、各ユーザは自分のログイン・シェルを変更できます。
% chsh ← ログイン・シェル、ユーザ情報の変更コマンド Changing user database information for guest. Shell: /bin/csh ← ここを /bin/tcsh に変更 Full Name: Mr. Guest Location: Office Phone: Home Phone:あ、vi エディタは使えますよね?
筆者の環境で付属の csh、tcsh で `コマンド` が使えなくなってしまいました。 このたび、tcsh を自分で make したら直ったので、報告させていただきます。
tcsh はフリー・ソフトウェアでソースが公開されています。オープン・テクノロ ジーズ社の FTP サイトにも MachTen 用のパッチとともに、tcsh-6.06.tar.gz が 置いてあります。
<ftp://product.opentech.co.jp/machten/applications/MachTen_CD1J/tcsh/>(カレント・ディレクトリは CodeBuilder 側のファイル・システム上とすると)
% finderinfo -C MUMM -T BINA //mac-volume/tcsh-6.06.tar.gz % finderinfo -C MUMM -T TEXT //mac-volume/tcsh-6.06.patch% tar xzvf //mac-volume/tcsh-6.06.tar.gz % cd tcsh-6.06 % vi README ← 作り方をよく読もう! % cp config/bsd4.4 config.h % cp Makefile.std Makefile % patch -p0 < //mac-volume/tcsh-6.06.patch ←パッチ当て % vi config.h ← `command` ができない対策 #define VFORK ← この行を見つけて、下記のように変更 ↓ #undef VFORK % make (かなり時間がかかる) % ./tcsh (いろいろと動作確認) % exit % su (スーパー・ユーザになって) # mv /bin/tcsh /bin/tcsh.orig # cp tcsh /bin
日本語対応( SJIS )パッチをどこからか入手して、さらにマック側のファイル名 のデコード・ルーチンを自作すればいいだけです。誰かやって :-)
CodeBuilder FAQ Version: 2.28 (1998-11-08)