次のページ 前のページ 目次へ

3. コンパイルとインストール

システム全体をコンパイルするためには、HPFS(または NFS, JFS, ext2fs) の 空き領域が約 300MB 必要です。このサイズには Postscript 形式や troff 形 式のドキュメントの分は含まれていません。筆者はこれらをインストールした ことがありません。また、テスト用のサブツリーをインストールしたこともあ りません。

  1. 上記のユーティリティを全てインストールします。関連ドキュメントを 参照してください。全てのユーティリティ(特に EMX)が正しく動作することを 確かめてください。
  2. 筆者と同じあるいは同様の構造を使うのは良い考えです。筆者はコンパ イル用のパーティションに \x11 というディレクトリを作成し、 全てのものをこのツリーの下に置きました。筆者の場合には、初期状態のツリー で使ったディスク容量がディスク全体の半分未満だったので、このツリーの名 前を \x11old に変え、新しいバージョンを同じディスクにコ ピーし、diff を取ることができました。完成したツリーは最終的にルートディ レクトリ xc の下に配置されるので、このディレクトリは \x11\xc になります。
  3. ファイルを展開するには通常、\x11 ディレクトリで
    gzip -dc file.tar.gz | tar xvf -
    
    コマンドを実行します。最後に "gzip: stdout Broken pipe" といううっ とうしいですが、致命的ではないメッセージが出力されます。これは無 視してください。
  4. その後、パッチをいくつか当てる必要があるようです。パッチは X コ ンソーシアムが出したものと、XFree86 プロジェクトが出したものがあ ります。パッチを当てる前には、
          chmod -R a+rw \x11\xc
          
    
    を実行して、ツリー中のファイルを書き込み可能にしてください。
  5. パッチには added-XXX というファイルが付属しているはずで す。このファイルは新しく生成されるファイルを列挙したものです。 patch プログラムは新しいディレクトリをうまく作成できないので、先 にディレクトリを作成しておく必要があります。存在する added-XXX それぞれについて、\x11
    xc\config\util\added added-XXX
    
    を実 行してください。利用できる added-XXX がない場合、このファ イルは以下の手順で作成することができます:
          grep "\*\*\* xc/" patchfile >added-file
          
    
    テキストエディタで added-file を編集し、先頭の *** と 末尾のタイムスタンプを削除します(TAB を検索し、行末まで削除しま す)。この操作により、ファイルパスのリスト(1 行に 1 ファイル)が得 られますが、これが added ユーティリティの入力となります。
  6. 次に、パッチを正しい順序で当てます。パッチを当てるには通常、 \x11 ディレクトリで
          patch -p -E <patchfile 2>&1 | tee patchlog
          
    
    というコマンドを実行します。ただし、正しい patch コマンドを使っ てください。OS/2 には名前が同じで機能が異なるユーティリティが存 在します。よく勧められる -s オプションは使わないでください。 このオプションは patch のメッセージ出力を止めるので、patch のログに残される問題点を見られません。リジェクトされ、適用されな かったパッチを見つけるには
          find \x11 -name *.rej -print 
          find \x11 -name *# -print
          
    
    を実行します(注意: 違う機能を持つ別のコマンドが OS/2 にあります)。 通常はこのような問題は起こらないはずなので、問題が起こった場合は 何かミスをしています。最後に、次のコマンドを実行してオリジナルの ファイルを消します。
          find \x11 -name *.orig -print -exec rm {} ;
          
    
  7. xc\config\cf ディレクトリに移動し、 \x11bsol;xcbsol;programsbsol;Xserverbsol;hwbsol;xfree86bsol;etcbsol;bindistbsol;OS2bsol;host.def.os2 ファイルを xc/config/cf/host.def にコピーし、これを必要な条件 に合わせて編集します(たぶん、全ての X サーバをコンパイルすることはない でしょう)。いくつかの変更は必須であり、以下の値に設定しなければなりま せん:
  8. xc\util\compress ディレクトリに移動し、そこで make compress.exe を実行します。これにより生成されたプログラ ムをパスが通っている場所にインストールします。筆者は OS/2 関連の ftp サーバにある移植が中途半端な compress プログラムで何度もつまづきました。 この compress プログラムは標準入力/標準出力の読み書きに問題があります。 ちゃんとしたものを使わないと、圧縮したフォントが全て壊れてしまうので、 インストール途中の段階(フォントの圧縮)でmkfontdir が core を吐くことに なるでしょう。
  9. 環境変数 X11ROOT を現在とは別のどこかに設定します。さもな いと、インストール処理で先にインストールしていた XFree86/OS2 が上書き されてしまいます。この環境変数が設定されていない場合、本ドキュメントの 前書きまで戻ってください。何か忘れものをしています。
  10. xc/programs/Xserver/hw/xfree86/etc/bindist/OS2/host.def.os2 ファイルを xc/config/cf/host.def にコピーします。このファイル は、xfree86.cf, imake.tmpl, os2.cf ファイルを直接編集せずに imake 編集 に固有の変更を加えるために用います。
  11. xc/config/util/buildos2.cmd ファイルを xc ディレク トリにコピーします。2 回目以降の試みであれば、保存されているトップレベ ルの Makefile.os2 を Makefile にコピーして戻す必要があるかもしれません。
  12. この buildos2.cmd コマンドを xc ディレクトリで実行しま す。このコマンドは、このディレクトリにログファイル buildxc.log を作ります。 注意: 配布物を Unix tar 形式のアーカイブから取り出した場合には、この コマンドは即座に失敗するでしょう。残念なことに、OS/2 の REXX インタプ リタには、Unix 流の改行コードを使っているスクリプトで問題を起こします。 ですから、ツリー全体を調べ、unix2dos や unixtoos2 に代表されるプログラ ムを使って *.cmd ファイルを "OS/2 ASCII" 形式にしてください。
  13. コーヒーを飲みます。コロンビア産ならもっといいでしょう! 選んだ設定とハードウェアの馬力によって、コンパイルには 2 時間から 20 時間かかります。
  14. コンパイルが終了したら、ログファイルでエラーを調べ、問題があれば 修正します。筆者は何とか問題なくシステム全体をコンパイルすることができ たので、動作する設定は少なくとも 1 つはあると言えます。
  15. 最後に、xc ディレクトリで次のコマンドを実行します:
          xmake install
          xmake install.man
          
    
  16. インストールの際にはちょっとした問題がいくつかあります:
    1. xdm ディレクトリと linkkit ディレクトリはコンパイルとインストー ルに失敗するでしょう。これは問題ではありませんし、残りのシステムにも影 響を与えません。
    2. \XFree86\bin にインストールされる imake.exe には普 通、不具合があります。最初に作成し、ソースツリーがあるドライブのルート ディレクトリにインストールされる imake.exe は大丈夫です。したがって、 単にこの \imake.exe を手動で \XFree86\bin に コピーしてください。いつかこの問題は修正されるかもしれません。
    3. XF86Setup はまだ移植されていないので、XFree86/OS2 で利用可 能な Tcl/Tk の移植版を使っても動作しません。XF86Setup をネイティブのイ ンストール用ツールで置き換えるという考えが筆者にはあったのですが、まだ そのための時間が取れません。よかったら、XF86Setup をちょっといじってみ てください。

というわけで、ご覧の通り、作業はとっても簡単でした :-)

$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OS2note.sgml,v 3.4.2.7 1999/12/20 12:55:51 hohndel Exp $





$XConsortium: OS2note.sgml /main/1 1996/02/24 10:08:59 kaleb $


次のページ 前のページ 目次へ