Cygwin というのは Windows 上で動く POSIX 環境らしい。UNIX-like OS 上でプログラミングする要領で Windows 上でもプログラミングできる。そのおかげであまり手を加えないでも UNIX-like OS で動作する各種ソフトウェアを Windows 上でコンパイルしたり、実行できたりする。ただ、UNIX-like OS で当然の機能が必ずしも Windows 上に組み込まれているわけではないので、ライブラリでカバーしたりしている。ただ、ちょっと強引な手法が使われていたりするというか、Windows のシステム的に相容れない機能部分が気に掛かったりする。そのために、強引に POSIX エミュレーションしている部分を除いた Mingwin という環境も用意されてもいる。
で、Cygwin を自分のコンピュータにセットアップするには、cygwin.com から入手できる setup.exe を実行する。このプログラムはネットワーク上から Cygwin パッケージを入手したりインストールしたりアップデートしたりできるすぐれものだ。昨今のネットワークの転送速度は速くなったものの、Cygwin のパッケージ全部を外部ネットワーク上からインストールするたびにとってくるのは大変だということで、そのキャッシュをローカルディレクトリに保持する機能がある。アップデートの際には一部のダウンロードで済んだりする。ただ、パッケージの一部のアップデートをするのにも setup.exe はローカルにあるファイルの正当性をチェックする機能がしばらく前から追加されたので、アップデートするたびにファイルチェックに時間が掛かる。そのチェックを外すには、
setup.exe -5
と、-5 オプションを追加して setup.exe を起動してやればいい。ローカルにキャッシュされたファイルの md5 チェックをしなくなるオプション。何かこのオプション調べるためにソース取ってきて cc ファイルを読む羽目になったよ。setup.exe でコマンドラインオプションのヘルプを表示する機能がついていないんで、付けようとコンパイルしてみようとしたが、あるヘッダファイルが見つからないエラーでコンパイルできない。setup-snapshot か cvs から入手できるよとあるけど見つからん。setup.exe はオプション処理に getopt++ というライブラリ使ってる。実にシンプルなライブラリだけど、main() の前に不定の順番で実行される関数でオプション登録するしくみになってる。
と、そんな感じ。