Subject: [UNIX on MacOS] CodeBuilder not so FAQ (Frequently Asked Questions) Reply-To: KIMURA Kazushi Keywords: CodeBuilder,CB,MachTen,Mac,FAQ Archive-name: cb-faq.txt Last-modified: $Date: 1998-11-08 23:36:51+09 $ Version: $Revision: 2.28 $ ----------------------------------------------------------------------- CodeBuilder not so FAQ (Frequently Asked Questions) Copyright (C) 1997-98 ♪きむらかずし ----------------------------------------------------------------------- 0. はじめに 0-0: はじめにお読みください このドキュメントは MachTen CodeBuilder に関する FAQ ( Q&A 集)です。 でも CodeBuilder は今のところ無名の存在なので、FAQ すなわち「頻繁に 尋ねられる質問集」と名付けるのはちょっとウソがありますけどね (^^; CodeBuilder は、PowerPC マックの上でアプリケーションとして動く BSD UNIX です。 GNU の各種開発ツールや X-Window も含まれています。 このドキュメントは筆者(きむらかずし)が勝手にまとまたもので、 MachTen CodeBuilder を開発した TENON 社及び、日本販売元のオープンテクノ ロジーズとは無関係です。 改変しない限りコピー、配布、転載フリーです。メール、ニュースでの情報交 換は大歓迎ですが、単なる質問メールはご遠慮ください。 FAQ の最新版はココに置いておきます: CodeBuilder Academy 0-1: What's New? $Log: cb-faq.txt,v $ Revision 2.28 1998-11-08 23:36:51+09 kimu 秋葉原 Amulet さん(→ 1-7 )が“マジで MachTen キャンペーン”実施中! MachTen 4.1 +αがなんと 39,800 円! Revision 2.26 1998-10-31 18:15:04+09 kimu “UNIXとMacintoshの融合を目指すページ”の御紹介 → 7-1 の関連ページに CodeBuilder 1.1 について(とりあえず“こぼれ話”として) → 7-3 激動する“筆者の環境”をまとめて更新(4GB, MacOS8.5, G3…) → 0-2 Revision 2.25 1998-10-27 22:09:09+09 kimu 『Power MachTen で パソコン UNIX 入門』付属の CodeBuilder 試用版は (まだ販売されていない)最新版 Ver1.1 でした! → 7-2 Ver1.01 正規ユーザは、これを正式版として使えるようにしてほしい! Revision 2.23 1998-10-06 00:01:08+09 kimu PowerBook2400 に PowerPC Linux をインストールして遊んでおります。 冒頭の部分を → 0-0 節『はじめにおよみください』とする。 これに伴い → 0-1 What's New? と → 0-2 筆者の環境の節番号をずらす。 書籍『Power MachTen で パソコン UNIX 入門』リリース → 7-2 Revision 2.21 1998-03-29 13:57:02+09 kimu お久しぶりでございます。 "X11R6" ごと消してしまった netpbm を作り直したらハマった → 4-1 k14 フォントは "X11R6" に含まれていた!! → 3-2 MachTen 4.1 リリース!開発元、販売元のウェブ・ページでどうぞ → 7-1 Revision 2.20 1997-11-30 00:49:35+09 kimu tcsh 6.06 パッチのキモは VFORK だった。 → 2-3 Revision 2.19 1997-11-29 19:20:02+09 kimu ちょっと訂正 Revision 2.18 1997-11-29 18:32:10+09 kimu tcsh 6.06 を自分で make したら `/bin/echo ls` できた! → 6-8 ついでにログイン・シェルを tcsh に変更する方法 → 2-3 Revision 2.17 1997-11-28 00:59:53+09 kimu 本家 MachTen & CodeBuilder FAQ 1.4.1.1 リリース。ただし追加情報 は「MacOS8 にコンパチです」だけ → 7-1 csh, tcsh のバグ? MacOS 7.6.1 on PowerBook2400 でも再現 → 6-8 バグ回避のため B-shell で書き直したデジカメ用 script 公開 → 5-1 Revision 2.16 1997-11-18 12:34:33+09 kimu 筆者の環境の変化。それは MacOS8 → 0-2 csh, tcsh のバグ? MacOS8 だから? → 6-8 マックのアプリを作りたい!その後 → 5-2 Revision 2.15 1997-10-26 10:59:00+09 kimu マックのアプリを作りたい! → 5-2 テキスト・ブラウザ lynx 2.6 → 4-2 finderinfo なんて長すぎ!手抜き csh alias 例 → 2-1 (編集中なのに、ここで Web 公開してしまった) MachTen 関連の FTP サイト発見(ミラーサイト?) → 7-1 QV-10 FAQ の HTML 化スクリプトも公開 → 5-1 Revision 2.13 1997-09-26 00:21:33+09 kimu setenv RCSINIT -zLT とすると↑ローカルタイムになります。 CD-ROM 上のソース・ コードをマウントできました (^^; → 6-6 デジカメ Cyber-shot で GIF アニメを作るスクリプト by 筆者 → 5-1 GIF アニメ生成ソフト GIFMerge は make 一発 → 4-1 Revision 2.8 1997/09/21 06:24:02 kimu ちょっと訂正。この版を公開。 Revision 2.7 1997/09/21 06:16:40 kimu 端末ウィンドウでの日本語処理改訂( JVim 最新版等) → 3-1 Revision 2.6 1997/09/15 10:04:06 kimu 過度の期待を抱いている方へ、概要に「不安定さ」を加筆 → 1-1 jtty が一般ユーザでエラーに(解決編) → 6-7 Revision 2.4 1997/09/14 23:12:23 kimu オンライン・ショッピング → 1-7 Revision 2.3 1997/09/14 07:17:53 kimu jtty が一般ユーザでエラーに(解決) → 6-7 CD-ROM 上のソース・ コードをマウントできない!(解決) → 6-6 Revision 2.2 1997/09/14 06:58:58 kimu CodeBuilder の GNU RCS にバージョン管理を移行( Rev.2.1 より) 漢字コードが SJIS のままで大丈夫かな? Revision 2.1 1997/09/14 06:56:30 kimu Revision 1.24 97/09/11 perl5 動く! TENON の ftp サイトにアップデート版が → 6-5 , 7-1 X-Window あり。でも Motif toolkit なし → 1-3 こぼれ話其の壱。キャンペーン版 1,000 本をまだ売ってるの? → 7-3 Revision 1.23 97/09/08 ショップ情報充実。秋葉原 Amulet を追加 → 1-7 参考のため、筆者のマック環境を → 0-2 (一部改題) perl で Fragment Load Err: -2807 → 6-5 MachTen ユーザ・ページ発見 → 7-1 Revision 1.18 97/09/03 CodeBuilder Academy 開校 :-) → 7-1 お知らせ: fj.sys.mac, fj.sys.mac.programming, fj.os.bsd.misc Revision 1.17 97/09/02 目次再編、グラフィック・ツール移植、パニック編等々、加筆 Revision 1.9 97/08/28 暫定版のまま初公開: fj.sys.mac, fj.sys.mac.programming Revision 1.1 97/08/22 作成開始 0-2: 筆者の環境 参考のため、筆者のマック環境を記しておきます。 NEW! MacOS8.5 入れました!“じーさん”入れました! PowerBook 2400c180 + NUPOWR G3 + 80MB RAM + IMB 4GB HDD MacOS 8.5 日本語版 内蔵ハードディスクを純正ドライブ設定 1.6 で 4 分割( HFS 形式)。 第 3 パーティションに CodeBuilder 1.0.1 をフル・インストール。 ちなみに一時期 HFS+ 環境でも使っていましたが問題はありませんでした。 ちなみに同じパーティションに Virtual PC 2.0 + Windows95 も入っています。 ちなみに第 4 パーティションには PowerPC Linux が入ってます(今のところ)。 ちなみに CodeBuilder の X-Window 環境はほとんど全く使っていません。 ----------------------------------------------------------------------- !*** 目次 *** ! 0. はじめに ! 0-0: はじめにお読みください ! 0-1: What's New? ! 0-2: 筆者の環境 ! 1. 準備編 ! 1-1: CodeBuilder ってなんですか? ! 1-2: できることは? ! 1-3: できないことは? ! 1-4: 欠点は? ! 1-5: MachTen と違うの? ! 1-6: そもそも UNIX って? ! 1-7: どこで売ってますか? ! 1-8: Virtual PC とどちらを買うべきでしょうか? ! 2. 基本編 ! 2-1: マックのファイルの扱い ! 2-2: 特殊コマンドのクイック・リファレンス ! 2-3: ログイン・シェルを変えよう 〜 tcsh 編〜 ! 3. 日本語処理編 ! 3-1: コンソールで日本語を ! 3-2: X Window で日本語を ! 3-3: Mule がダメなら Nemacs ! 4. 移植編 ! 4-1: グラフィック・ツール ! 4-2: いろいろ ! 5. 応用編 ! 5-1: UNIX スクリプト ! 5-2: マッキントッシュ・プログラミング ! 6. パニック編 ! 6-1: Quit できません! ! 6-2: インストールしようにもディスク容量が足りません! ! 6-3: MacOS ごとフリーズするぞ! ! 6-4: Xlock から抜けられない! ! 6-5: /usr/bin/perl が動きません! ! 6-6: CD-ROM 上のソース・コードをマウントできない!? ! 6-7: jtty が一般のユーザでエラーに! ! 6-8: csh や tcsh で、`command` 辺りで Bus error ! ! 7. 関連情報 ! 7-1: オンライン情報源 ! 7-2: オフライン情報源 ! 7-3: こぼれ話 !---------------------------------------------------------------------- 1. 概要 1-1: CodeBuilder ってなんですか? マックと UNIX が大好き(で、何が嫌いかは、お分かりですね)な人間は少な からず存在します。そんな人はマックでグラフィック処理をしていても、突然、 shell スクリプトや perl スクリプトの助けを借りたくなったり、pbmplus フィルタや djpeg/cjpeg コマンドが恋しくなったりするものです。 一方、なんらかの理由で、 UNIX の勉強をしてみたいけどマックしか持ってい ない、どうしよう、という方もいらっしゃるでしょう。 たとえマックでも、コンパイラは gcc じゃないとヤダ!という方も。 そんなアナタには CodeBuilder があります! 今までマックで動く UNIX (もどきも含めて)は、コマンドが個々に移植(開 発)されただけだったり、フリーだけど制約が多く不安定だったり、高価だっ たり、 MacOS と同時に使えなかったり... と、一長一短でした。 CodeBuilder はそこそこの値段( 2 〜 3 万円)で、ネットワーク機能を除いた BSD UNIX 環境を入手できます。 ただし、メモリ回りや、マック側のファイルの扱いなど、不安定な側面もありま す。場合によっては MacOS ごとフリーズするので、心してください (^^; もちろん本格的に UNIX の道を進むなら、PowerPC マックには、天下の Linux の移植版である PowerPC Linux や MkLinux 、68K マックには NetBSD がありま す。 マックで動く各種 UNIX については、→ 7-1 の関連ページの「UNIXと Macintoshの融合を目指すページ」でどうぞ。 1-2: できることは? PowerPC を搭載したマックの MacOS の上で動きます(再起動不要)。つまり、 他のマック用アプリケーションと共存できます。ダブルクリックで Mach カー ネルを持つ BSD 4.4 UNIX が起動します。マックのデスクトップに(もちろん 複数の)端末ウィンドウを開けます。別に、 X-Window (Ver11R6) を起動する こともできます。デフォルトで、 AfterStep (NEXTSTEP もどき)ウィンドウ ・マネージャを使えます。 CodeBuilder は、FFS (Fast File System) というファイル・システムを用い ますが、ハードディスクにパーティションを切り直す必要はありません。その かわりディスク・イメージを巨大なファイルとして持ちます。マック側の任意 のフォルダを「マウント」して共有できます。 様々な開発ツール( GNU コンパイラ、エディタ等)がプリ・インストールさ れています。例えば gcc, g++, Ada95, fortran77, Java, emacs, perl, ... CodeBuilder ( UNIX )上で動くアプリだけでなく、MacOS 上で動く、マック・ アプリも作れます(ただし PowerPC 専用)。 1-3: できないことは? CodeBuilder には、ネットワーク機能が実装されていません。 ftp, telnet, WWW 等はあきらめてください。 仮想記憶も実装されていません。メモリ不足には弱いっす (^^; そのままでは日本語は扱えません。日本語環境は自分で構築する必要がありま す。幸い、Power MachTen 4.0x 用に移植された日本語対応ソフトウェアが多数 存在し、CodeBuilder とバイナリ互換なので、そのまま流用できるものもあり ます。 なんと分厚いマニュアルは英語のままです。インストール・マニュアルだけは 日本語になっています。オープンテクノロジーズには、がんばって日本語マニュ アル完全版を作ってほしいものです。 X-Window は使えますが、 Motif Toolkit は付属しないので、 Motif 画面の開 発はできません( Power MachTen には付属します)。それにネットワーク環境 ではないので、他のホストのための X サーバにはなれません。 1-4: 欠点は? 1-3 の補足になりますが... フル・インストールするとハード・ディスク容量を 250MBytes 以上食います。 カスタム・インストールで X-Window ソフトウェアを除外すると、 50MBytes ぐらい節約できますが。 マック側のファイルの扱いがちょっと面倒です。マックのファイル・システム 特有のリソース・フォークをなんとかする必要があるからです。 → 2-1 まさに UNIX なので、 UNIX に不慣れな人は、最初は手も足もでないでしょう。 一方、マックのアプリでもあるので、MacOS ごとフリーズすることもあります。 それに(筆者だけかもしれませんが)大きなプログラムがエラーで動かない場合 があります。 Nemacs, Mule 等が動かないと困りますよね。 1-5: MachTen と違うの? まず、MachTen の意味は( Macintosh + 10 じゃなくて) Mach + TENON 社で す。 Mach は、音速マッハにひっかけたんだと思うのですが、最先端の OS (オペレーティング・システム)の名前で、あの NEXTSTEP そして Rhapsody も Mach をベースにしているぐらいですから、凄いヤツなんであります。 英語では「マーク」と発音するようですが、日本では MachTen を「マックテン」 と呼ぶようです。で、 MachTen は MacOS 上で動く UNIX ですが、MacTCP 互換のネットワーク機能を もった、( CodeBuilder より)フル・スペックな UNIX システムです。それゆ えに、比較的高価です。ちなみに MachTen にもいくつか種類があるのですが、 PowerPC 専用の Power MachTen 4.0x は、CodeBuilder とバイナリ互換です。 すなわち、 MachTen 4.0x でコンパイル&リンクして作った実行ファイルは、 そのまま CodeBuilder でも動きます。 1-6: そもそも UNIX って? そ、そう言われても (^^; 本ドキュメントの範囲外なので、書籍や関連リンクで お調べください。 → 6-1 あ、資料を探すなら "BSD" UNIX と書いてあるものにしましょう。 System V 系 や Linux とは流派が違いますので。 1-7: どこで売ってるの? 残念ながら MachTen CodeBuilder を扱っているお店は限られます。筆者の知る 範囲では、 秋葉原 Amulet TEL:03-5295-8418 秋葉原 ラオックス ザ・コンピュータMAC館 TEL:03-3251-4811 (ただいま CodeBuilder は在庫切れ?) 秋葉原 T・ZONEアップル館 TEL:03-3526-7720 新宿 ビックパソコン館新宿東西口店 TEL:03-3226-1111 秋葉原ぷらっとホーム( TEL:03-3251-7611 )も MachTen シリーズを扱って いますが、CodeBuilder は置いてないようです( 97 年 8 月現在)。 サーチ・エンジンで "CodeBuilder" を検索していたら、オンライン・ショッピ ングの商品一覧がひっかかりました。在庫等はご自分でご確認下さい。 DEPOT Japan PRICE LIST MACZONE Networking あとは、オープンテクノロジーズ → 6-1 に問い合わせてください。 1-8: Virtual PC とどちらを買うべきでしょうか? は? 2. 基本編 2-1: マックのファイルの扱い マックと一般的な 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: マックのファイルを FFS 内にコピーすると、データ・フォークとリソース・ フォークをひとまとめにした、 AppleSingle 形式のファイルになります。 これからデータ・フォークだけを取り出したりするコマンド群が用意されて います。 FFS→マック: CodeBuilder で FFS 内で作ったファイルを、マック側にコピーすると、 クリエータ: MUMM、タイプ: BINA のリソース情報がひっつきます。 それがテキスト・ファイルなら、 mactext コマンドで「共通テキスト形式」に 変換できます。それはタイプ: TEXT で、マック形式の改行コードになります。 CodeBuilder からこのファイルを見ると、 UNIX 形式の改行コードに自動変換 されます。 マックのボリュームにある 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 一般人に戻る % _ UNIX 側で作ったテキスト・ファイルを共通テキスト形式にするとき: % 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' 2-2: 特殊コマンドのクイック・リファレンス ファイル変換: % finderinfo /mac_volume/filename マックのファイルの属性を調べる。 % 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 扱えるようにする。 注意! finderinfo コマンドでは、クリエータが MUMM のファイルには、ファ イル・タイプは TEXT あるいは BINA しか指定できません。その他のタイプを 指定しても無視されます(エラー・メッセージは表示されません)。 % 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 マックのボリュームのマウント 2-3: ログイン・シェルを変えよう 〜 tcsh 編〜 コマンド・ラインでサクサク作業するには、編集機能を持ったシェルが 必需品です。ここでは筆者がどの UNIX 環境でも(なければ make して)愛用 している tcsh を中心に説明します。 とりあえず 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 エディタは使えますよね? tcsh を作る: 筆者の環境で付属の csh、tcsh で `コマンド` が使えなくなってしまいました。 このたび、tcsh を自分で make したら直ったので、報告させていただきます。 tcsh はフリー・ソフトウェアでソースが公開されています。オープン・テクノロ ジーズ社の FTP サイトにも MachTen 用のパッチとともに、tcsh-6.06.tar.gz が 置いてあります。 (カレント・ディレクトリは 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 )パッチをどこからか入手して、さらにマック側のファイル名 のデコード・ルーチンを自作すればいいだけです。誰かやって :-) 3. 日本語環境編 3-1: 端末ウィンドウ 全面改訂しました。 CodeBuilder では、起動後に表示されるコンソール・ウィンドウ( console ) と、各ユーザのログイン後に表示される端末ウィンドウ( wind0, wind1 ... ) は、別の意味を持っています。コンソールからログインすると、まず一枚の端 末ウィンドウが開きますが、File メニューから New Window を選ぶことによっ て複数の端末ウィンドウを開くことができます。 日本語を扱うには、まず、Fonts メニューで日本語の等幅フォントを選んでお く必要があります。これらの設定は、Window メニューの Save Window Environment によって、ユーザごとに保存しておくことができます。 CodeBuilder の端末設定は 8bit を通すので漢字の入出力も可能です。ただし、 出力バッファの切れ目に漢字コードが引っ掛かってしまうと文字化けが発生し ます。これを防ぐには、オープンテクノロジーズの FTP サーバ(→ 7-1 )か ら入手できる、 jtty ( Power MachTen 用)を使います。端末ウィンドウを開 いた後に、jtty を実行するだけです。 エディタは、 vi 互換の jstevie や jelvis や jvim からお好きなもの。 これでマック側の日本語 Input Method で、日本語入力ができます。 more コマンド上位互換の less も必要でしょう。これらも Power MachTen 用 が、前述の FTP サイトにあって、バイナリをそのまま使えます。 日本語対応 vi (jstevie) インストール例: % su # cp stevie /usr/local/bin # mv /usr/bin/vi /usr/bin/vi.orig # ln -s /usr/local/bin/steive /usr/bin/vi # exit % vi .login ( PATH に /usr/local/bin を加える等) % vi .cshrc ( EDITOR 等の設定変更) 筆者は jvim の最新版 Vim 3.0j12g のソースを入手して make しました。 漢字コードの自動識別機能等があって、いいですよ、これ。→ 7-1 Vim 3.0 オリジナルソース 日本語パッチ 1.2g 作り方 % cd work % dfork /mac/vim-3.0.tar.gz | tar xzvf - % dfork /mac/jvim.tar.gz | tar xzvf - % cd vim % patch -p0 < ../jvim.diff % cd src % cp makjunix.mak makefile % vi makefile 〜〜〜 # CodeBuilder (BSD 4.4) by Kimura MACHINE = -DBSD_UNIX -DUSE_LOCALE -DUSE_SYSTEM CC=gcc -O -Wall -traditional -Dconst= LIBS = -ltermlib 〜〜〜 注意: 実際の makefile では、行頭は TAB とすること。 % make 今後の課題: Power MachTen 用の nemacs は安定しません。 Canna、Wnn はよくわかりま せん。サーバは起動できるみたい。 tcsh の日本語対応パッチとかもやってみたいです。 ls コマンド等での、マック側のヴォリュームの日本語ファイル名対応も... 誰かお願いします (^^; 3-2: X-Window CodeBuilder オリジナルでは kterm も k14 フォントも用意されていません。 kterm は上記 FTP サイトに、 k14 はあちこちにあるはずです。筆者は、 日本語の表示は確認しました。筆者の CodeBuilder Academy ページに、証拠の ハードコピーがあります。 → 7-1 日本語ターミナル: kterm を漢字コード SJIS で使うには、次のようにします。 下記の準備をしておいて( .login に仕込んでもよい)、 % stty pass8 % setenv LANG ja_JP.SJIS 下記の引き数で起動します。 % kterm -km sjis -fn a14 -fk k14 -fr r14 & 日本語フォント: なんと k14 フォントが、イメージ・ファイル "X11R6" の中に入っていました。 ディレクトリ /usr/X11R6/lib/fonts/misc に下記のフォントが取り残されていま す。 gb16fs.pcf gb16st.pcf gb24st.pcf hanglg16.pcf hanglm16.pcf hanglm24.pcf jiskan16.pcf jiskan24.pcf k14.pcf 正規の /usr/lib/X11/fonts/misc (実体は /usr/X11R6/lib/X11/fonts/misc ) に、これらの全てのフォントを移しましょう。 % su - (スーパーユーザのパスワード) # cd /usr/X11R6/lib/fonts/misc # mv *.pcf /usr/X11R6/lib/X11/fonts/misc 日本語入力?: kterm 上では、マック側の日本語 Input Method (ことえり等)が使えない ようです。クライアント&サーバ方式の Wnn や Canna は使えるのだろうか。 Mule は筆者の環境では fatal error で動きませんでした。 Nemacs も不安定。 動かなくてもいいから、MacOS ごとフリーズしないで欲しい (;_;) 4. 移植編 4-1: グラフィック・ツール djpeg/cjpeg (jpegsrc.v6a.tar.gz): 無修正で make できたような気がします。README, install.doc 参照のこと。 % ./configure % make % su # make install Netpbm (netpbm-1mar1994.tar.gz) : 下記の方法では make できません (^^; サブディレクトリごとに Makefile を書き換えないとダメでした。そのうちまとめます。 Netpbm は各種グラフィック形式変換のフィルタ集である pbmplus ライブラリ の派生版です。こいつは Imakefile を若干編集して、やっと make できました。 パッチは下記に(便宜上 .txt を付けています)。 % cd netpbm % patch < netpbm.diff (行頭がタブでなければいけないところをタブにしているだけ) % xmkmf % vi Makefiles "TOP" という文字列を探して( 55 行目)、絶対 path でディレクトリを 指定する。例えば、 TOP = /home/cbnext/netpbm % make Makefiles % make depend % make ... 時間がかかる % su # make install # mkdir /usr/X11R6/man/man1 ... make install.man は動作せず。 # cd pbm; cp *.1 /usr/X11R6/man/man1 手でマニュアルのインストール。 # cd ../pgm; cp *.1 /usr/X11R6/man/man1 # cd ../ppm; cp *.1 /usr/X11R6/man/man1 # cd ../pnm; cp *.1 /usr/X11R6/man/man1 GIFMerge: GIF アニメを作るツール。 make 一発です。 ホームページ(入手先)はこちら。 日本語の GIFMerge 入門( GIF Animation with BSD )がここに。 4-2: いろいろ lynx 2.6: かんたんに make できました。でも CodeBuilder はネットワーク使えないから ローカル・ファイルしかブラウズできません。 5. 応用編 5-1: UNIX スクリプト Cyber-shot の画像ファイルから thumbnail と HTML を自動生成: thumbnail は、イメージ集の一覧画面等で使用するための縮小画像のことです。 Cyber-shot のマック版アルバムソフトによるイメージ・ファイルは、リソース フォークの中に独自の thumbnail を持っていますが、ここでは、 JPEG ツール のdjpeg, cjpeg ( → 4-1 )を使って、別途、自動生成しています。 また、アルバムソフトが作るイメージ・ファイル IMAGE0NN には拡張子 jpg を つけて、WWW ブラウザが認識できるようにします。 各スクリプトは下記に(便宜上 .txt を付けてます): バグ回避のため B-shell で書き直したモノ: % cd /mac_volume/data_dir (ここに IMAGE001, IMAGE002, IMAGE003 ... があるとする) % finderinfo -C MUMM -T BINA IMAGE* ( CodeBuilder で扱えるバイナリ・ファイルとする) % imgjpg ( cs001.jpg, cs002.jpg, cs003.jpg ... とリネームする) % thumbnail (縮小画像 cs001-s.jpg, cs002-s.jpg, cs003-s.jpg ... を生成) % image-index > index.html % sync Cyber-shot マルチ画面連写画像を GIF アニメ化: NetPBM、djpeg、GIFMerge (→ 4-1 )を呼び出して、標記のことを実現 する shell script です(手抜き&簡単)です。 ただし、上記スクリプトは UNIX 汎用です。CodeBuilder でマック側のボリュー ム上のファイルを処理する場合は、JPEG 形式で保存した Cyber-shot 画像ファ イルに対して、下記のコマンドを実行し、CodeBuilder で認識できるバイナリ ファイルにしてください。 % finderinfo -C MUMM -T BINA filename.jpeg % vi anicyber (パラメータ変更は、スクリプトを直接書き換える) % anicyber GIF アニメ filename.gif 生成後、マックの GIF Builder 等のツールを使って、 パラメータを変更することもできるはずです。あれ?できない? QV-10 形式テキストの HTML 化 perl script: HP200LX で動きます。 UNIX でも、当然、動きます。 5-2: マッキントッシュ・プログラミング まだ途上なんですけど... まずは付属のサンプル・プログラム: プリ・インストールされているユーザ cbuser (あるいは cbnext )のホーム ディレクトリにおいてあるサンプル・プログラムの中で "C" のところには、 マックのアプリケーション生成のサンプルが入ってます。いわゆる "hello world" プログラムです。 sample_code/C/ マックのプログラムを gcc ( GNU プロジェクトの C コンパイラ)でホントに make できることを実感しましょう。ここで学ぶことは、Makefile を見れば分 かりますが、 - 実行プログラムはマック側のファイル・システム上に吐くこと - マック用インクルード・ファイルの指定(コンパイル時) CPPFLAGS = -I/usr/include/MacOS - マック用ライブラリ・ファイルの指定(リンク時) /usr/macppc/lib/MacOS/Mac_start.o /usr/macppc/lib/MacOS/InterfaceLib.a - クリエータ、ファイル・タイプの指定(リンク時) -Xlcreator 'MISC' -Xltype APPL リソースをくっつける: マックのアプリケーション開発で必ず登場するのが ResEdit 。各種ウィンドウ やアイコン等を定義して、リソースの詰まったファイルを作るものです。 このリソース情報を、実行プログラムにひっつけるのも、CodeBuilder 上の コマンドで可能です。ただしリソース・ファイル自身のファイル情報を CodeBuilder が認識できる MUMM/BINA にしておく必要があります。 リソースを扱うコマンドは restool です。 % restool -c -o mac-appl-file resource-file.rsrc このコマンドを Makefile のリンクの次に入れておけば、自動化できます。 一般的なマック用コンパイラとの違い: - 4 文字定数(例: 'TEXT')に対し gcc は警告を出す。 - パスカル型文字定数定義(例: "\pTHIS IS A PEN.")を gcc は知らない。 DropShell: info-mac/dev/src (インフォ・マック/プログラム開発/ソースコード)に 入っている DropShell と、それを踏まえた DropUNIX は、UNIX アプリなんか をマックに( CodeWarrior 等のコンパイラを使って)簡単に移植できるように 考えられたツールです。ふつーの UNIX コマンドに、ドラッグ&ドロップをは じめとしたマックらしいユーザ・インターフェースを被せることができます。 まず DropShell ですが、ほとんど修正しないで gcc でコンパイルできました。 (実際は、先に、次に述べる DropUNIX に挑戦したのですが、挫折しました。) 変更点は... #include を #include と変更 "\p" ... Str255 のパスカル型 NULL 文字(?)を作って置き換え 付属のリソース・ファイル( PPC 用)は、 restool コマンドを使うと、なぜか MacOS ごとフリーズするので、マック側の ResEdit でひっつけました。 で、起動してみるとメニュー等はちゃんと選べます。でも肝心の「ドラッグ &ドロップ」ができないのです。書類のアイコンを重ねても、反応しません。 なんでだろうなぁ。マック・プログラミングの知識が皆無なので、ゼンゼン ワカリマセ〜ン。 その後、いろいろ試してみましたが、CodeBuilder で生成したプログラム は、AppleEvent を正しく扱えないような感じです。ドラッグ&ドロップは もちろん、メニュー選択等でも AppleEvent は反応してくれません。そんな〜。 メニュー・バーを設定して WaitNextEvent でメニュー選択を待つ、といった 伝統的なプログラムならちゃんと動作するようです。 DropUNIX: いわゆる main(argc, argv) の部分をマックのインターフェースで包み込んで くれますものです。例えば、ドラッグ&ドロップしたファイルのファイル名を argc に渡すといった、マック特有の処理の部分を代行してくれるのです。 前述の DropShell をほぼそのまま使っていますが、CodeWarrior でコンパイル することしか考えていないようで、CodeBuilder の gcc では苦戦しています。 だましだましして、プログラムはできたんですが... Finder から起動して、 File -> Open... でダイアログ・ボックスも出るんですが、ファイルを選んだ ところで、MacOS ごとフリーズしてしまいます (;_;) 6. パニック編 6-1: Quit できません! File メニューの Quit を選んでも、終了するまでちょっと時間がかかります。 一般に UNIX システムは終了時にいわゆる shutdown の手続きが必要です。 各種のバッググラウンド・プロセスを終了させたり、ファイル・システムを、 正しくクローズする必要があるからです。 6-2: インストールしようにもディスク容量が足りません! そんなこと言われても... CodeBuilder は巨大な FFS 形式のディスク・イメージを必要とするので、 X-Window システムを除いたとしても、200 MB 以上の容量が必要になります。 ちなみに X-Window システムは、カスタム・インストールで外すことができ ます。 6-3: MacOS ごとフリーズするぞ! おお、所詮(しょせん)、マックのアプリケーションの悲しさ。メモリを大量 に食うプログラムを使っていると、マックごとハングします。X-Window 上で emacs を起動しようとしたり、 gcc で(特定のソースを)コンパイルをしてい るとハングすることがあります。 なんか、マックのアプリとしてのメモリ管理にバグがあるような気がします。 CodeBuilder を起動すると、システム・メモリをガバっと 15MB ぐらい食う のですが、終了しても 4MB 程度が開放されずに残っていますし... 6-4: Xlock から抜けられない! X-Window 環境には、解除するのにパスワードを要求するスクリーン・セーバの ようなソフトがあります。こいつは、パスワードが設定されていないユーザに 対しても、パスワードを要求するので、永遠にロック解除ができなくなります。 こんなときは、メニューバーの File メニューの Logout を選びましょう。 X-Window ごと終了できます。 6-5: /usr/bin/perl が動きません! 筆者の環境(→ 0-2 )ではプリ・インストールの perl でエラーが出ます。 % perl Fragment Load Err: -2807 - Loaded Fragment has Unacceptable Unresolved Symbols : libc--gethostent /usr/bin/perl: Input/output error. でも、TENON 社の ftp サーバの CodeBuilder アップデートのディレクトリに ある最新版のバイナリをインストールしたら直りました。→ 7-1 6-6: CD-ROM 上のソース・コードをマウントできない!? CodeBuilder の CD-ROM には、各種ソース・プログラムが収められた FFS 形式 の巨大なファイル( Source_FFS )があるのですが、なぜか mount できません。 /CDROM はマウントできているのに。 その後、CodeBuilder ユーザの方より「マウントできます」とのメールを頂き、 再度、挑戦してみたところ、あっさりマウントできました。失礼しました〜。 CD-ROM (の Source_FFS の部分に)付着したゴミのせいでしょうか。それとも 機能拡張のコンフリクト?!さっぱり分かりませんが、結果、オーライという ことで。 6-7: jtty が一般のユーザでエラーに! 一般ユーザで端末ウィンドウから jtty を実行すると、下記のようなエラーが 発生するようになってしまいました。これは、ハングアップしたときなどに、 端末用デバイスファイルの設定が残ったままになってしまうのが原因です。 cbuser@CodeBuilder% jtty can't open pty slave,13,Permission denied この場合は、下記のデバイス・ファイルの属性変更で正常になりました。 crw-rw-rw- 1 root wheel 2, 0 Sep 15 18:25 /dev/ttyp0 crw-rw-rw- 1 root wheel 2, 1 Sep 15 18:32 /dev/ttyp1 crw-rw-rw- 1 root wheel 2, 2 Sep 15 18:32 /dev/ttyp2 6-8: csh や tcsh で、`command` 辺りで Bus error ! とある csh scrpt がエラーになるので、いろいろ試してみたら、コマンド・ ラインで下記の命令を実行するだこで、エラーになることが分かりました。 % `/bin/echo ls` ちなみにダメなのは C-shell の流れをくむ shell だけで、 sh や bash ( B-shell 系)では問題なく動きます。 PowerBook2400 を MacOS8 にアップグレードしたためかとも思い、 MacOS 7.6.1 に一時的に戻してみたところ、それでもダメでした。以前は 動いていたハズなんですが... やった! tcsh を config.h をいじって make したら直りました。 → 2-3 7. 関連情報 7-1: オンライン情報源 CodeBuilder Academy (筆者のページ。本 FAQ もここにあります) 日本発売元のページ: MachTen CodeBuilder (オープンテクノロジーズの日本語ページ) (同社による MachTen に関する)技術情報 日本語化を含む "Ported Application ftp service" へリンクあり。 Power MachTen は CodeBuilder とバイナリ互換なんで、使えます。 MachTen FAQ 要約版(日本語)。日本語化についてもちょっとだけ。 本家のページ: MachTen CodeBuilder (本家 TENON 社の英語ページ) MachTen & CodeBuilder FAQ (最新版はここ。英語) MachTen、CodeBuilder のアップデータ等が置いてある FTP サーバ CodeBuilder のアップデータ集。動く perl5 もココに。 CodeBuilder の HTML 版ドキュメントがそのまんまココに。 ユーザによるページ: MachTen 関連のミラーサイト?。ただし最後の更新: 1996 年 2 月。 MachTen Tips (English) ( MachTen で日本語 X-Window 環境の構築) Roger Grywalski: MachTen Page (更新停止中。 MkLinux に乗り換えた?) メーリングリスト: MachTen User メーリングリスト: machten-user@iijnet.or.jp 入会申請は majordomo@iijnet.or.jp に下記の本文を送ります。 subscribe machten-user あなたのメール・アドレス (この ML は、生きているのでしょうか?返事がきません) CodeBuilder で使えるフリーソフト: VIM 日本語版のページ 関連ページ: BSD UNIX 情報検索(ドキュメント、フリーソフト等へのリンク集) NEW! UNIXとMacintoshの融合を目指すページ(マックで動くUNIX情報) NEW! Perl 日本語マニュアル( Perl script は便利ですよん) K仲川の公式ホームページ(マックのプログラミング情報はこちら) Cross Basic補完計画(関係ないけど、同じ "CB" ってことで) 7-2: オフライン情報源 『 MachTen 入門』 石田つばさ著、サイエンス社 CodeBuilder の本ではありませんが、共通部分が多いので役に立ちます。 『Power MachTen で パソコン UNIX 入門』臼田昭司著、オーム社出版局、 2,800 円 日本語で書かれた MachTen のインストール・マニュアル的な本です。 NEW! CodeBuilder 最新版 v1.1 のお試し版が CD-ROM に付属。 NEW! 7-3: こぼれ話 仙人会?: MacWEEK ウェブ日本版の 1997 年 4 月 23 日の記事によると、オープンテクノ ロジーズによる CodeBuilder の発売記念キャンペーンは(定価より 10,000 円 安い) 25,000 円の T シャツ付きパッケージを限定 1,000 本、です。で、今、 店頭で見かけるパッケージも T シャツ付きで 2 万数千円。ってことは、 CodeBuilder ユーザは日本には 1,000 人もいないってことですね (;_;) CB 仙人会でも作ろうかなぁ。 NEW! 幻の最新バージョン: “こぼれ話”に書くことじゃないかもしれませんが… 『Power MachTen で パソコン UNIX 入門』に付属する CodeBuilder の最新版 Version 1.1 についてオープンテクノロジーズにメールで問い合わせところ、 - CodeBuilder 1.1 は米国でもまだ発売されておらず発売時期も未定。 - 日本での発売が決まったら 1.01 ユーザへアップグレードのお知らせをする。 とのことでした。う〜、残念。ソフトウェアはもう完成している(みたい)なのに。 --- end ---