Top > Computer > 弐号機 > C:/Cygnus/

C:/Cygnus/

このディレクトリには Cygwin を置いている.
 Cygwin は, GNU の各プロダクトを Win32 環境で動作させようとするもので, Win32 環境上に UNIX ライクな開発環境を作ることができる. 現在のバージョンは 20.1(2,000年1月現在). バージョン 19 に比べるとディレクトリ構成やマウントが簡潔になっているようだ. なお,バージョン 19 までは,GNU-Win32 という名前が使われていた.

Cygwin のインストール

cygwin のサイト から full.exe をとってくる. ただ,ファイルサイズが 13.5MB と非常にでかい. C コンパイラ等や難しいコマンドを外し, ユーザにとって最低限必要なコマンドものだけをおさめた usertools.exe(3.0MB)もあるが, これだと一般的なユーザでも不足を感じることがありそうなので, full.exe をインストールしたほうが良いと思う.
 入手したファイルを実行するとインストーラが起動する. インストールするディレクトリを聞かれるが, ぜひデフォルトの C:¥cygnus にするべきである. ディスク容量は FAT32 環境で 40MB 近く必要になる.
 なお,PC-98 シリーズでは A:¥Cygnus あたりにインストールすることになるだろう. PC-98 シリーズでもほとんどのコマンドは正常に動作するようであるが, 一部完全な動作はしないものがあるかもしれない.

使ってみる

インストールが終了したら, スタートメニューの "Cygwin B20" を実行すると MS-DOS プロンプトと同様なウィンドウが起動するが, シェルには MS-DOS の command.com ではなく bash が使われる.
 Cygwin 環境では, UNIX と同様ルートディレクトリ "/" の下にすべてのドライブ, ディレクトリが格納される.たとえば C:¥Cygwin ディレクトリは, //c/Cygwin/ として参照する.
 bash でぜひ覚えておきたいのは,ファイル名の補完機能である.たとえば,

cd //c/Cygnus/cygwin-b20/

と入力したいとき,cd //c/C と入力したところで TAB キーを押すとエラー音が出るが, もう一度 TAB キーを押すと C:¥ ディレクトリの "C" で始まる名前のファイルのリストが下に表示される. さらに y とたたくと, "Cy" で始まる名前のファイルは(たぶん)1つしかないので, Cygnus/ と勝手に入力されるはずだ. さらに /c,TAB と押すと,cygwin-b20まで入力される. このように,UNIX 環境では長いディレクトリ名も入力が容易になっているので, しばしば非常に長いパス名が使用される.
 なお,従来の DOS プロンプトでも Cygwin のコマンドは利用可能である.

さらに環境設定

次に,AUTOEXEC.BAT を編集して C:¥cygnus¥cygwin-b20¥h-i586-cygwin32¥bin ディレクトリへのパスを追加する.たとえば

PATH C:¥usr¥local¥bin;C:¥usr¥bin;
C:¥cygnus¥cygwin-b20¥h-i586-cygwin32¥bin;
C:¥WINDOWS;C:¥WINDOWS¥COMMAND;
C:¥usr¥local¥perl¥bin;
C:¥bin;C:¥

(実際には1行で記述する)のようにする. また,ホームディレクトリを環境変数に設定しておく. たとえば SET home=D:¥home¥ida とする. UNIX 由来のプログラムにはこの環境変数を参照するものも多く, このディレクトリにはプログラムの設定ファイルも置かれることになる.
 それから,シェルスクリプトがいつでも使えるように C:¥cygnus¥cygwin-b20¥h-i586-cygwin32¥bin¥sh.exeC:¥bin ディレクトリへコピーしておく.
 さらに,ディスクのマウントを行う. まず手順を示すと次のような画面になる.

1: BASH.EXE-2.02$ mount
2:
Device           Directory           Type        Flags
3:
c:               /                   native      text!=binary
4: BASH.EXE-2.02$ umount /
5: BASH.EXE-2.02$ mount -b c:/ /
6: Warning: / does not exist!
7: BASH.EXE-2.02$ mount -b C:/cygnus/cygwin-b20/h-i586-cygwin32/bin /bin
8: BASH.EXE-2.02$
  1. 現在のマウント情報を表示させてみよう.
  2.  
  3. マウントにはバイナリモードと非バイナリモードがある. C:¥ が / としてマウントされているが, マウントの種類が非バイナリとなっているのは問題を起こす場合がある.
  4. したがって,いったんマウントを解除し,
  5. バイナリモードでマウントしなおす.
  6. このエラーは無視してよい. 上の例には出てこないが, もしほかにも非バイナリでマウントされているディレクトリがあるなら, 同様に変更しよう.
  7. さらに Cygwin の実行ファイルがあるディレクトリを /bin としてマウントする. この長いディレクトリ名は補完機能を使って入力すると楽だ.

ほかにもいくつかのディレクトリをマウントしておいたほうが便利かもしれない. 私の場合は D:¥homeD:¥tmpD:¥var をそれぞれ /home/tmp/var にマウントしている.
これらのマウント情報は Windows レジストリに登録される. おかしくなったときは mount --reset とすれば初期状態にもどる.

これ以上の情報は,UNIX 関連の書籍や,web を使用して調べてほしい. 日本語でもかなりたくさんのサイトが見つかる.

UNIX-like tools のインストール

Cygwin のコマンドでは日本語が正常に取り扱えないので, UNIX-like tools をインストールするとさらに便利になる. 2,000年1月現在のバージョンは 4.12c のようだ. @nifty の FEXT に少しの遅れで最新版が登録されている.
 解凍は,/tmp ディレクトリに移動し, tar zxvf ファイル名 として行う. すると /tmp の下に uxtl412c というディレクトリができ, コマンド類はその中の bin ディレクトリに作られる. このコマンド類を C:¥bin に置くと, Cygwin で別なディレクトリを /bin へマウントしたのであるから, Cygwin 環境下ではそのままでは使用できない. それで,ここでは C:¥usr¥bin に置くことにした. 同様,man ディレクトリは C:¥usr に置けば良いだろう. 必要ならほかのディレクトリも C:¥usr に置く.

netpbm
ftp://ftp.lab.kdd.co.jp/X11/contrib/utilities/netpbm-1mar1994.p1.tar.gz

TOP  Email to Kunihiko Nakano(c) FEB 9, 2005